在MVC4中覆盖自动生成的id

时间:2013-04-22 14:53:18

标签: razor asp.net-mvc-4

这是我的观点:

@using (Html.BeginForm())
{
    @Html.ValidationSummary()            
    @Html.EditorForModel()

    <input type="submit" value="@Resources.Main.Save" />         
}

这是我的视图模型

 public class ContentPagePresViewModel
    {
        [HiddenInput(DisplayValue = false)]
        public Guid Id { get; set; }


        /// <summary>
        /// Contenu de la page
        /// </summary>
        [Display(Name = "¨Presentation")]
        [DataType(DataType.Html)]
        [AllowHtml]
        /*[Required(ErrorMessage = "ContentPage_PageContent_Required")]*/

        public virtual string Description { get; set; }
}

我希望为我的Description propety生成的id不会变为“Description”。 我是怎么做到的?

1 个答案:

答案 0 :(得分:1)

您可以使用UIHint属性与自定义编辑器模板结合使用。

修改模型以添加UIHint属性:

[UIHint("Description")]
public virtual string Description { get; set; }

在特定视图的文件夹中,创建一个名为EditorTemplates的新文件夹。添加一个名为Description.cshtml的新文件,并添加以下内容:(假设您使用的是Razor)

<div>
    @Html.TextBox("", Model, new { id = "_myCustomDescriptionId" })
</div>

<小时/> 这是另一个想法要考虑的问题。单独布置字段和编辑器可能更直接,而不是使用Html.EditorForModel。在这种情况下,您可以直接指定html属性:

@Html.TextBoxFor(m => m.Description, new { id = "_myCustomDescriptionId" });