MVC:如何让控制器渲染从视图启动的部分视图

2024-05-19

在我的 MVC5 项目中,我想在部分视图中创建一个菜单。该菜单是动态的,因为它是根据我的数据库中的内容构建的。因此,我有一个控制器负责创建菜单并将菜单模型返回到我的部分视图:

public PartialViewResult GetMenu()
{
   MenuStructuredModel menuStructuredModel = menuBusiness.GetStructuredMenu();

   return PartialView("~/Views/Shared/MenuPartial", menuStructuredModel);
}

在我的部分观点中称为菜单部分我想使用 razor 迭代我的菜单项,例如:

@model MyApp.Models.Menu.MenuStructuredModel

<div class="list-group panel">
    @foreach (var category in Model.ViewTypes[0].Categories)
    {
        <a href="#" class="list-group-item lg-green" data-parent="#MainMenu">@category.ShownName</a>
    }
</div>

现在的问题是我在其中插入部分视图的视图。如果在视图中我只是这样做:

@Html.Partial("MenuPartial")

它不会首先调用控制器用数据填充模型。我想要的是让控制器返回部分。但我不知道如何从视图中做到这一点。在伪代码中我想做类似的事情:

@Html.RenderPartialFromController("/MyController/GetMenu")

感谢 Stephen Muecke 和 Erick Cortorreal 我让它发挥作用。

控制器应该是这样的:

[ChildActionOnly]
public PartialViewResult GetMenu()
{
   MenuStructuredModel menuStructuredModel = menuBusiness.GetStructuredMenu();

   return PartialView("~/Views/Shared/MenuPartial", menuStructuredModel);
}

它可能会这样调用:

@Html.Action("GetMenu", "Home")

(Hence GetMenu()被声明在HomeController在我的例子中)。

现在,在渲染部分视图之前调用控制器(并填充模型)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC:如何让控制器渲染从视图启动的部分视图 的相关文章

  • 如何根据 ASP.NET VNEXT MVC6 中给出的路径进行虚拟路由/重定向?

    我有一个网站 它在不同的路径上公开多个 API 每个 API 由特定于应用程序部分的控制器处理 例如example com Api Controller Action param1 stuff 其中控制器发生变化 但操作保持相当一致 我有几
  • asp.net mvc 4 - 可以在每个线程共享 DbContext 吗?

    From 每个 Web 请求一个 DbContext 为什么 https stackoverflow com questions 10585478 one dbcontext per web request why 我的理解是 DbCont
  • MVC 项目中的 .Rdlc 报告 - 托管调试助手“PInvokeStackImbalance”

    我即将完成并运行我的上一份报告 我在其他报告中没有遇到过这个问题 我正在尝试根据数据库记录创建报告 当我通过 LocalReport 创建报告并为报告创建参数时 收到错误消息 托管调试助手 PInvokeStackImbalance 调用
  • 缺少添加控制器/视图的上下文菜单

    我已将 ASP NET MVC 4 集成到现有的 asp net 网站中 两者都工作正常 但我没有看到任何菜单 快捷方式来在 Visual Studio IDE 中创建控制器 视图 这些仅适用于 ASP NET MVC 模板吗 这些仅适用于
  • Ajax 表单从 Jquery 对话框内重定向页面

    我在部分视图中有一个 jquery 对话框 model JQueryDialogPoc Models FeedBack using Ajax BeginForm GiveFeedback Home null new AjaxOptions
  • 将 EditForm 绑定到数组时如何让 EditContext.Validate() 工作

    我创建了一个EditForm像这样包装表格 Index razor using System ComponentModel DataAnnotations
  • 无法将 MVC 4 部署到服务器

    我的 Web 应用程序只是一个用 VS 2010 MVC 4 制作的简单 Web 应用程序 没有任何外部代码 它只是 VS 2010 的默认应用程序 我有 Plesk 的豪华 Windows 托管 我从未更改过帐户中的任何功能 我将所有文件
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 表单身份验证 MVC4

    我正在尝试使用 MVC4 网站进行简单的表单身份验证设置 在App start FilterConfig cs中 public static void RegisterGlobalFilters GlobalFilterCollection
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何在 MVC 应用程序中转置 Kendo UI 网格中的行和列?

    我在 MVC 应用程序中使用 Kendo Ui Grid 我希望在我的网格中显示多个国家 地区的统计数据 我从数据库检索数据的方式 我的网格将显示类似于以下内容的数据 Country Area Population GDP GDP Grow
  • SignalR 在子域上协商 404

    我创建了一个小型 MVC SignalR 应用程序 但在子域下的服务器上运行时遇到问题 http chat mydomain com http chat mydomain com 它映射到名为 chat 的文件夹 我还使用 SignalR
  • 过滤文件上传仅用于文本文件

    我使用的是 Firefox 版本 14 0 1 我需要过滤上传文件窗口以仅显示 txt files 我的浏览器不仅仅支持文本文件 text plain 我可以通过指定此格式来限制图像文件 image 但我只需要过滤文本文件在文件选择器窗口中
  • ASP.NET MVC 多线程

    我想在我的 asp net mvc 应用程序中实现这样的逻辑 user clicks a button gt server executes some time consuming logic in 15 threads i get dat
  • 使用 401 发送消息:Asp.net Web-api

    我在 ASP NET Web API 中 在登录方法中 我根据数据库检查用户 密码 如果它们不匹配 我将返回 401 状态代码以及invalid user or password method like var content new St
  • 关于实体框架上下文生命周期的问题

    我对 ASP NET MVC 应用程序中实体框架上下文的所需生命周期有一些疑问 让上下文在尽可能短的时间内保持活动状态不是最好的吗 考虑以下控制器操作 public ActionResult Index IEnumerable
  • 如何在 MVC3 Razor 视图中呈现数据表

    我在 xls 电子表格 1 之间有一个可靠且经过测试的导入方法 该方法返回DataTable 我已将其定位在我的服务层中 而不是数据中 因为只有工作簿作为上传文件保存 但现在我想知道在哪里以及如何生成此内容的 HTML 表示形式DataTa
  • Active Directory 会员资格提供商 - 如何对此进行扩展?

    我正在努力通过 AD Membership Provider 启动并运行 MVC 应用程序 但在解决这个问题时遇到了一些问题 我有一个基本配置设置并在我登录时工作 电子邮件受保护 cdn cgi l email protection 密码
  • SignalR 似乎正在减慢我的 MVC/Azure 应用程序的启动速度

    我有一个 MVC 应用程序在 Windows Azure 上的 WebRole 上的 NET 4 5 下运行 使用 SignalR 1 0 alpha2 并使用 ServiceBus 底板 在我的 App Start 文件夹中 我有 Reg
  • Jquery 验证不能正确验证数字?

    我在使用 jquery 非侵入式验证验证数字时遇到问题 我使用的版本是 ASP NET MVC 3 jQuery 1 9 1 jQuery 用户界面 1 10 1 JQuery 验证 1 11 0 我试图验证的输入是

随机推荐

  • 在包加载之前如何知道 R 中特定函数属于哪个包?

    例如 我知道许多流行的功能 例如tbl df 我通常不记得它属于哪个包 即data table or dplyr 所以我必须始终记住并加载一个包 但我做不到 tbl df除非我加载了正确的包 在 R 控制台本身加载或安装包之前 有没有办法知
  • 如何制作 tumblr 风格的个人资料 url

    我想知道 tumblr 是如何做到这样的个人资料网址 http www username tumblr com http username tumblr com 我知道我们可以更改个人资料网址 http www website com pr
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • 如何管理AWS ECS中docker镜像的版本?

    AWS ECS 服务指向一个任务定义 其中包含 docker 镜像的名称 包括标签 因此 当我创建新版本的 docker 映像时 我有两种可能性 将任务定义更新到新版本 然后更新服务以指向任务定义的新版本 使用一些标签指向最后一个版本 假设
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • C++11 Geany 设置

    我正在学习 C 我需要在 Geany 中为 C 11 正确设置编译和构建命令 我以为我的理解是正确的 但是当使用时auto 我收到以下错误 warning auto will change meaning in C 0x please re
  • Flask 中“缺少 CSRF 令牌”,但它在模板中呈现

    问题 当我尝试登录 使用 Flask login 时 我得到Bad Request The CSRF session token is missing但令牌正在呈现 在模板中 secret key 已设置 并且我在本地运行localhost
  • OAuth2 变量redirect_uri

    我们正在编写一个与 OAuth2 API 集成的插件 棘手的部分是 我们无法像大多数集成中那样对重定向 URI 进行硬编码 因为客户端可以在他们控制的任何域上安装此插件 例如 Wordpress 插件 并且访问令牌需要重定向回其自定义 ur
  • 如何在同一 PHP 页面上多次使用 mysqli fetch_assoc() 和准备好的语句?

    有没有办法启用fetch assoc 在同一页上多次使用准备好的语句 data conn gt prepare SELECT FROM some table WHERE id data gt bind param i id data gt
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • 无法与重定向器建立连接。确保“sql browser”服务正在运行

    所以我尝试这个 sql server 2012 由于这个错误我无法打开任何 ssis 包 无法与重定向器建立连接 确保 sql browser 服务正在运行 我的 Sql 浏览器肯定正在运行 我尝试在本地服务 本地系统和网络下更改它 仍然没
  • 如何将文本放在 RadioButton 的顶部

    我正在尝试实现附件中显示的效果 但没有成功 甚至有可能吗 我试图将文本框放在单选按钮内 并将其设置为水平和垂直内容对齐 但它没有按我想要的方式工作 欢迎任何建议 Resource
  • data.table 抛出“找不到对象”错误[重复]

    这个问题在这里已经有答案了 我有一个数据表 library data table mydt lt data table index 1 10 当我在全局环境中尝试它时 我可以让它工作 但当我在调试器中或在包测试中使用它时却无法工作 问题是我
  • 为什么不需要通过模板在静态调度中进行前向声明?

    我正在玩一点静态多态性 我正在调用一个函数 该函数根据初始参数的类型在内部调用 正确的 专用函数 基本上我正在做标记 这是代码 include
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 为什么我们使用 SpreadsheetApp.flush()?

    我的理解是 flush https developers google com apps script reference spreadsheet spreadsheet app flush有助于在功能发生时执行这些功能 而无需将它们捆绑在
  • 宽度:适合内容;在 Chrome 上工作,但在资源管理器上不工作

    我构建了一个应用程序 所有内容都在 Chrome 中完美显示 但如果我在 Windows 资源管理器中打开该应用程序 容器会比应有的小 我在用着width fit content 这是只适用于 Chrome 的东西吗 我怎样才能使其适用于所
  • MVC:如何让控制器渲染从视图启动的部分视图

    在我的 MVC5 项目中 我想在部分视图中创建一个菜单 该菜单是动态的 因为它是根据我的数据库中的内容构建的 因此 我有一个控制器负责创建菜单并将菜单模型返回到我的部分视图 public PartialViewResult GetMenu