asp.net-mvc – mvc将多个参数传递给局部视图
发布时间:2020-12-16 06:43:41 所属栏目:asp.Net 来源:网络整理
导读:我想将多个参数传递给局部视图.有以下几点 % Html.RenderPartial("Details",Model.test,new ViewDataDictionary { { "labelName","Values1" },{"header","Header1"},{"header2","Header2"}}); % 代码,我有错误信息 ) missing. 怎么了? %@ Control Language=
我想将多个参数传递给局部视图.有以下几点
<% Html.RenderPartial("Details",Model.test,new ViewDataDictionary { { "labelName","Values1" },{"header","Header1"},{"header2","Header2"}}); %> 代码,我有错误信息
怎么了? <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<MvcUI.Models.Label>>" %> <%var label = ViewData["labelName"];%> <%int count = 0; %> <%if (Model!=null) {%> <% foreach (var model in Model){ %> <%if (!String.IsNullOrEmpty(model.Name)) {%> <li> <%: Html.Hidden((label)+".Index",count.ToString())%> <%: Html.TextBox((label)+"[" + (count) + "].Name",model.Name,new { Style = "width:280px" })%> <%: Html.Hidden((label)+"[" + (count++) + "].ID",model.ID,new { Style = "width:280px" })%> <input type="button" value = "Delete"/> </li> <%} %> <%} %> <% } %> 解决方法
您无需简单地将所需的值添加到模型中,而不是使用ViewDataDictionary:
public class MyModel { public string Test { get; set; } public string LabelName { get; set; } public string Header { get; set; } public string Header2 { get; set; } } 然后简单地说: <% Html.RenderPartial("Details",Model); %> 除此之外,你的语法没有任何问题.你得到的错误来自其他地方: <% Html.RenderPartial( "Details",new ViewDataDictionary { { "labelName",{ "header","Header1" },{ "header2","Header2" } } ); %> 更新: 现在您已经展示了代码,让我建议您使用编辑器模板更清晰的方法. 首先定义一个模型: public class MyModel { public IEnumerable<Label> Labels { get; set; } } public class Label { public string ID { get; set; } public string Name { get; set; } } 然后一个控制器将填充此模型: public class HomeController : Controller { public ActionResult Index() { var model = new MyModel { Labels = new[] { new Label { ID = "l1",Name = "Label 1" },new Label { ID = "l2",Name = "Label 2" },new Label { ID = "l3",Name = "Label 3" } } }; return View(model); } } 然后是视图(?/ Views / Home / Index.aspx): <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SomeNs.Models.MyModel>" %> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <ul> <%: Html.EditorFor(x => x.Labels) %> </ul> </asp:Content> 最后是编辑器模板(?/ Views / Home / EditorTemplates / Label.ascx): <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SomeNs.Models.Label>" %> <li> <%: Html.HiddenFor(x => x.ID) %> <%: Html.TextBoxFor(x => x.Name) %> <input type="button" value="Delete" /> </li> 如您所见,使用编辑器模板,您不再需要担心命名输入,维护和增加索引,编写循环,所有这些容易出错的事情都由框架自动处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 可以在web.config中添加响应http头吗?
- asp.net – 如何从Web应用程序中的客户端计算机获取AD凭据?
- 手动升级后,将新的ASP.NET Web Optimization框架添加到MVC4
- asp.net – Knockout.js – 数据绑定的javascript函数
- ASP.NET MVC输出缓存为多应用程序,因主机名和文化而异
- asp.net-mvc – MVC Tag助手无法正常工作
- asp.net-mvc-3 – 实体框架4.1自动日期
- MVC 3验证 – 仅在失去焦点或提交后显示错误消息?
- asp-classic – 从ASP访问IIS WMI提供程序的访问被拒绝错误
- asp.net – RaisePostBackEvent没有触发
推荐文章
站长推荐
- asp.net-mvc – MVC 2 jQuery验证和ajax表单
- asp.net – 为什么当我将模型传递给我的.Net MVC
- asp.net – scriptresource.axd 404错误在asp ne
- asp.net-mvc-2 – 实体框架4 CTP 4/CTP 5通用存储
- asp.net-mvc – 覆盖控制器AuthorizeAttribute只
- asp.net-mvc – asp.net mvc子行为
- asp.net – 如何以完全信任的方式部署IIS ASP .N
- 在ASP.NET MVC Core项目中使用View内部的C#7功能
- ASP.NET Core去掉HTTPS配置和SSL证书
- asp.net – 是否值得在IIS7中启用动态压缩?
热点阅读