我有一个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"
。 如何获得获得这个全名?