0

我有类:Asp.net MVC不显示模板编辑

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; 
    } 
} 

文件夹共享> EditorTemplates

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() 

只显示UrlKeywordReCapcha字段!

为什么Asp.net MVC不使用共享文件夹中的模板来显示我的嵌套类型PersonDetailsModel

回答

1

你知道,你可能刚刚编辑了你的其他问题。 :)

无论如何,我不认为这将工作。您或者需要自己控制整个模板,或者让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) 

或者你可以在你的视图模型使用您GroomBride性能[UIHint("PersonDetailsModel"]属性。

请阅读的备注部分EditorForModel了解这一切的工作原理。

+0

我认为上下文是不同的:) 我需要创建模板'RegisterCoupleModel'? 它不能只是创建模板'PersonDetailsModel'? 我试着创建模板,并把属性'UIHint(“PersonDetailsModel”)',但没有工作。 – ridermansb

+0

@Riderman - 是的,除了'PersonDetailsModel'之外,还要创建模板'RegisterCoupleModel',它应该可以工作。 (在这种情况下不需要UIHint)。你的主视图中的'Html.EditorForModel'将呈现'RegisterCoupleModel'模板,然后该模板将调用'新娘'和'新郎'的'PersonDetailsModel'模板。 – RPM1984

+0

好的,我认为没有必要创建'Template' RegisterCoupleModel。再次感谢! – ridermansb

相关问题