asp.net-mvc – 如何在EditorTemplate中获取完全限定的成员名称
发布时间:2020-12-16 07:24:19 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET MVC 4站点,我将一个嵌套属性传递给EditorTemplate并使用ViewData.ModelMetadata.PropertyName构建字段名称,但是,这将获取子属性的属性名称,而不是完整的点符号名称我正在编辑的属性. 一个例子将说明最佳: 鉴于以下类型 public class EditEn
我有一个ASP.NET MVC 4站点,我将一个嵌套属性传递给EditorTemplate并使用ViewData.ModelMetadata.PropertyName构建字段名称,但是,这将获取子属性的属性名称,而不是完整的点符号名称我正在编辑的属性.
一个例子将说明最佳: 鉴于以下类型 public class EditEntityViewModel { // elided public Entity Entity { get; set} } public class Entity { // elided public string ImageUrl { get; set; } } 我的编辑和创建视图如下: @model EditEntityViewModel <div> @Html.EditorFor(model => model.Entity.ImageUrl,"_ImageUploader") </div> _ImageUploader.cshtml编辑器模板如下 @model System.String <div class="uploader"> @Html.LabelFor(model => model) @Html.HiddenFor(model => model) <div data-rel="@(ViewData.ModelMetadata.PropertyName)"> <input type="file" name="@(ViewData.ModelMetadata.PropertyName)Upload" /> </div> </div> 渲染的HTML看起来像这样 <div> <div class="uploader"> <label for="Entity_ImageUrl">Image</label> <input id="Entity_ImageUrl" name="Entity.ImageUrl" type="hidden"/> <div data-rel="ImageUrl"> <!-- Problem --> <input type="file" name="ImageUrlUpload" /><!-- Problem --> </div> </div> </div> 请注意第5行和第6行,其中我调用了ViewData.ModelMetadata.PropertyName,我只获取子属性名称“ImageUrl”,但我想要“Entity.ImageUrl”.如何获得这个完全限定的名称? 解决方法
使用@ Html.NameFor(model => model)/ @ Html.NameForModel()而不是ViewData.ModelMetadata.PropertyName,此方法应该为您提供所需的名称.它是
Mvc3Futures软件包的一部分,并被添加到MVC4中.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在.NET业务层中构造Vs类
- ASP.NET控件绑定数据源
- “ASP.NET”错误:拒绝访问远程服务器,因为不存在登录映射
- asp.net – 防止VB.NET中的属性序列化
- asp.net – 页面查看计数器像StackOverFlow
- asp.net-web-api – 如何测试我的web api方法
- asp.net – LINQ – ‘无法翻译表达式’与以前使用和验证的
- asp.net-mvc-3 – 在ASP.NET MVC 3中使用不显眼的验证,如何
- asp.net-mvc – ServiceStack.Factor模块列表中有一个错误的
- asp.net-mvc – 如何在ASP.NET MVC中将复杂的ViewModel传递
推荐文章
站长推荐
热点阅读