asp.net-mvc – 基于属性名称的共享编辑器模板?
发布时间:2020-12-16 06:26:51 所属栏目:asp.Net 来源:网络整理
导读:在ASP.net MVC 4 Web应用程序中,我有5个模型类,它们都具有相同的属性,比如字符串ManufacturerName.我想在数据库中显示制造商的下拉列表(使用ViewBag从控制器传递到视图的列表数据)在这些模型的创建/编辑模板中.可以这样做,但我在所有5个编辑器模板中重复下拉
在ASP.net MVC 4 Web应用程序中,我有5个模型类,它们都具有相同的属性,比如字符串ManufacturerName.我想在数据库中显示制造商的下拉列表(使用ViewBag从控制器传递到视图的列表数据)在这些模型的创建/编辑模板中.可以这样做,但我在所有5个编辑器模板中重复下拉代码
@Html.DropDownList("ManufacturerName",new SelectList(ViewBag.ManufacturerList)) 我希望有一些方法可以在名为“Manufacturer.cshtml”的编辑器模板中将上面的下拉代码编写一次作为局部视图,并且可以从模型模板中调用它,就像这样 @Html.EditorForModel(model => model.ManufacturerName) 我知道上面的行通常会调用字符串的编辑器模板,因为这是ManufacturerName的类型,但有没有办法改变它以匹配属性名称? 解决方法
在?/ Views / Shared / EditorTemplates / Manufacturer.cshtml中创建一个新的EditorTemplate:
@Html.DropDownList("ManufacturerName",new SelectList(ViewBag.ManufacturerList)) 然后使用[UIHint]在ViewModel中装饰属性: [UIHint("Manufacturer")] public string ManufacturerName { get; set; } 或者,如果您不想修改ViewModel,可以将templateName参数传递给EditorFor()方法: @Html.EditorFor(x => x.Manufacturer,"Manufacturer") 最后一种方法的问题是,如果使用@ Html.EditorForModel()呈现编辑器,则不会使用适当的模板. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在ASP.NET MVC 3中正确实施“确认密码”?
- 使用WCF或ASP.Net Web Api实现RESTful API的版本控制
- asp.net – 如何在web.sitemap中实现本地化
- asp.net – VB.NET 2.0:代码中的URL来自哪里?
- 自动填充 – 带下拉建议的文本框
- asp.net – 如何在Web部署发布后在服务器上运行.bat文件
- asp.net-core-mvc-2.0 – ASP .NET Core 2 MVC错误NU1202在
- asp.net-mvc – Nhibernate / MVC:在View中处理延迟加载的
- asp.net – 用于创建事件处理程序存根的Visual Studio键盘快
- asp.net-mvc在post action中获取字典或如何将FormCollectio