我有类:
public class PersonDetailsModel
{
public string FistName
{
get;
set;
}
public string LastName
{
get;
set;
}
public string Email
{
get;
set;
}
}
public class RegisterCoupleModel
{
public PersonDetailsModel Groom
{
get;
set;
}
public PersonDetailsModel Bride
{
get;
set;
}
public string UrlKeyword
{
get;
set;
}
public string ReCaptcha
{
get;
set;
}
}
文件夹共享>编辑器模板
PersonDetailsModel.cshtml
@model BindSolution.AndMarried.ViewModel.PersonDetailsModel
<div class="editor-label">
@Html.LabelFor(m => m.FistName)
</div>
<div class="editor-field">
@Html.EditorFor(m => m.FistName)
@Html.ValidationMessageFor(m => m.FistName)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(m => m.LastName)
@Html.ValidationMessageFor(m => m.LastName)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.Email)
</div>
<div class="editor-field">
@Html.EditorFor(m => m.Email)
@Html.ValidationMessageFor(m => m.Email)
</div>
在我看来:
@Html.EditorForModel()
仅显示UrlKeyword
和ReCapcha
字段!
为什么Asp.netMVC不使用共享文件夹中的templantes来显示我的嵌套类型PersonDetailsModel
?
你知道,你本可以编辑你的另一个问题。:(
不管怎样,我认为这行不通。您要么需要自己控制整个模板,要么让MVC自己完成。(我可能错了(
为RegisterCoupleModel
:创建编辑器模板
@model BindSolution.AndMarried.ViewModel.RegisterCoupleModel
@Html.EditorFor(model => model.Groom)
@Html.EditorFor(model => model.Bride)
@Html.EditorFor(model => model.UrlKeyword)
@Html.EditorFor(model => model.ReCapcha)
或者,您可以在ViewModel中的Groom
和Bride
属性上使用[UIHint("PersonDetailsModel"]
属性。
阅读EditorForModel中的备注部分,了解这一切的工作原理。