asp.net-mvc – 如何填充mvc剃刀部分视图
发布时间:2020-12-16 00:34:03 所属栏目:asp.Net 来源:网络整理
导读:我需要创建一个显示订单标题信息的视图,我需要添加一个显示行项目网格的标签视图。部分视图将从viewmodel中强力输入。我明白我应该使用html helper @ Html.Partial(“Path / view”)。我直到现在才使用控制器打开视图,在将视图模型发送到视图之前填充视图
我需要创建一个显示订单标题信息的视图,我需要添加一个显示行项目网格的标签视图。部分视图将从viewmodel中强力输入。我明白我应该使用html helper @ Html.Partial(“Path / view”)。我直到现在才使用控制器打开视图,在将视图模型发送到视图之前填充视图模型。由于部分视图被从html帮助器调用,我想知道是什么将是使用模型数据填充parital视图的最佳方式。
解决方法
选项1:从父页面继承
默认情况下,通过调用@ Html.Partial(“PartialViewName”)呈现的任何部分视图将获取传递给父视图的视图模型。 所以如果你有 查看模型 namespace MyNamesapce { public OrderInfoViewModel { public string OrderTitle { get; set; } public IEnumerable<OrderItem> OrderItems { get; set; } } } OrderInfo.cshtml @model MyNamespace.OrderInfoViewModel <h1>@Model.OrderTitle</h1> @Html.Partial("OrderLineItems") OrderLineItems页面应该得到一个MyNamespace.OrderViewModel传递给它…所以你的部分视图应该如下所示: OrderLineItems.cshtml @model MyNamespace.OrderInfoViewModel foreach (var orderItem in Model.OrderItems) { //Do stuff } 选项2:指定模型 您可以使用第二个参数指定要传递的视图模型。即 OrderInfo.cshtml @model MyNamespace.OrderInfoViewModel <h1>@Model.OrderTitle</h1> @Html.Partial("OrderLineItems",Model.OrderItems) OrderLineItems.cshtml @model IEnumerable<OrderItem> foreach (var orderItem in Model) { //Do stuff } 选项3:使用部分动作 如果您需要重复使用多个页面的部分视图,则使用部分视图可能是一个好主意,因为无需使用相同的信息填充不同的视图模型,因为该页面将使用相同的部分。 例如。 查看模型 namespace MyNamesapce { public OrderInfoViewModel { public string OrderTitle { get; set; } } } 调节器 public class OrderController : Controller { public ActionResult OrderInfo(int orderId) { OrderInfoViewModel viewModel = GetViewModel(orderId); return View(viewModel); } public PartialViewResult OrderLineItems(int orderId) { IEnumerable<OrderItem> orderItems = GetOrderItems(orderId); return Partial(orderItems); } } OrderInfo.cshtml @model MyNamespace.OrderInfoViewModel <h1>@Model.OrderTitle</h1> @Html.Action("OrderLineItems") OrderLineItems.cshtml @model IEnumerable<OrderItem> foreach (var orderItem in Model.OrderItems) { //Do stuff } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何在Azure共享主机中启动Hangfire(“永远在线
- asp.net – 在网页中显示OLAP SQL Server?
- asp.net-mvc – 使用ASP.NET Core和MVC存储本地文件
- asp.net-web-api – 使用Fiddler进行包含OData命令的HTTP G
- ASP.NET框架是CLR还是BCL的一部分?
- asp.net-mvc-3 – 如何关闭我的整个ASP.NET MVC 3网站的缓存
- asp.net-mvc-routing – ASP.NET Web Api路由(IIS vs Self
- ASP.NET缓存的位置
- asp.net – 从Web API的承载令牌返回用户角色
- asp.net – 服务器随机返回状态码为200的空响应
推荐文章
站长推荐
- asp.net-mvc – 如何为最小和最大数量的复选框创
- asp.net-mvc-4 – 从ASP.NET MVC Web API返回400
- asp.net-mvc – 在MVC中写数据库和业务逻辑的位置
- asp.net-mvc – 将母版页的代码放在MVC应用程序中
- asp.net-mvc – 如何在MVC3中为多行文本框创建多
- 将列表绑定到asp.net 3.5中的列表视图
- asp.net – IIS Express(WebMatrix)打开外部连接
- asp.net – 错误:SelectedValue无效,因为它在项
- asp.net – 如果页面上有异常,则输出缓存无效
- asp.net-mvc – ASP.NET MVC网站的品牌/皮肤
热点阅读