ASP.NET MVC编辑器模板和Html.EditorFor(…) – 如何消除类型名称的歧义?
发布时间:2020-11-17 02:44:22 所属栏目:asp.Net 来源:互联网
导读:在Razor语法中使用此 HTML助手时: @Html.EditorFor(model = model.Prop1) …该约定是将视图呈现在视图/ CrtView | Shared /EditorTemplates/Prop1TypeName.cshtml下. 到现在为止还挺好.请注意,如果Prop1的(限定)类型为my.org.ns.TheType,则将呈现文件TheType
在Razor语法中使用此 HTML助手时: @Html.EditorFor(model => model.Prop1) …该约定是将视图呈现在视图/< CrtView | Shared> /EditorTemplates/Prop1TypeName.cshtml下. 到现在为止还挺好.请注意,如果Prop1的(限定)类型为my.org.ns.TheType,则将呈现文件TheType.cshtml. 但是如果我有一个.Prop1和.Prop2的模型,并且: Prop1.GetType().FullName == "my.org.ns1.TheType"; Prop2.GetType().FullName == "my.org.ns2.TheType"; //same type name but different namespace 我叫这把剃刀: @Html.EditorFor(model => model.Prop1) @Html.EditorFor(model => model.Prop2) …我不能得到它为不同的类型显示不同的视图. 有没有办法消除歧义? 也许有更多关于.cshtml文件的命名约定的知识? 解决方法您可以使用 this overload来指定要使用的编辑器的名称.有了这个,你可以命名你的EditorTemplates First.cshtml和Second.cshtml,然后在你的View里这样做.@Html.EditorFor(model => model.Prop1,"First") @Html.EditorFor(model => model.Prop2,"Second") 但是,我建议避免在同一个项目中重复使用相同的类型名称,即使它们具有不同的命名空间.这样会导致读者阅读代码的混乱,甚至可能在路上.这是一个比不知道要使用什么模板的框架更大的问题. (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 使用自定义格式的ASP.NET MVC ViewModel映射
- asp.net – 登录后对Membership.GetAllUsers()的例外情况:
- 如何在asp.net c#中计算网站访问者数量
- entity-framework – 如果EF 5,如何定义自定义命名约定
- 设置ASP.NET页面不被缓存(客户端/服务器端取消缓存方法)
- asp.net – 让Visual Studios使用子域名?
- asp.net-mvc-4 – ASP.NET MVC 4通过ActionLink传递对象变量
- asp.net-mvc – 允许asp.net mvc 2控制器名称的URL中的连字
- asp.net – 从单独的配置文件中读取设置
- asp.net-mvc-3 – 在MVC 3.0中重写Html.BeginForm()并保持不
推荐文章
站长推荐
- asp-classic – 哪里可以存储经典ASP的连接字符串
- asp.net-mvc – 在MVC ActionLink中使用Knockout
- 在ASP.Net MVC应用程序中放置初始化代码的位置?
- asp.net-mvc – 输出在剃刀通过变量?
- 在ASP.NET中拒绝用户时,’CustomIdentity’上的S
- 优化 – 字典/客户端VS应用程序变量
- asp.net – Ajax Control Toolkit正在加载太多脚
- asp.net – MS Chart for .NET预定义调色板颜色列
- asp.net-mvc – ASP.NET MVC如何实现返回上一页的
- asp.net – 如何在gridview中将navigateurl添加到
热点阅读