Asp.net MVC不显示模板编辑

时间:2011-09-30 01:24:07

标签: asp.net-mvc-3 viewmodel mvc-editor-templates editorformodel

我有课程:

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不在共享文件夹中使用templantes来显示我的嵌套类型PersonDetailsModel

1 个答案:

答案 0 :(得分: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)

或者您可以在ViewModel中的[UIHint("PersonDetailsModel"]Groom媒体资源上使用Bride属性。

阅读 EditorForModel 中的备注部分,了解这一切是如何运作的。