如何使用MVC3将数据绑定到Model的“Display”属性?

时间:2013-04-27 09:27:37

标签: asp.net-mvc-3 razor asp.net-mvc-helpers label-for

我有model

public class TestModel {
  [Display(Name = "Date")]
  public DateTime Date { get; set; }
}

Html.LabelFor

中的Test.cshtml辅助方法
@Html.LabelFor(m => m.Date )

并将此页面与2​​个MVC操作方法一起使用:CreateUpdate。 例如:

public virtual ViewResult Create() {
 return View("Test");
}

public virtual ViewResult Update() {
 return View("Test");
}

我希望在@Html.LabelFor(m => m.Date )页面显示Create:“日期”和Update页面:“更新日期” 。我知道MVC3的正常方式不能这样做。我希望您的理想可以编辑Html.LabelFor hepler方法或任何方式将数据绑定到控制器上的操作方法中的Html.LabelFor

2 个答案:

答案 0 :(得分:1)

添加hiddenFor字段会将数据绑定到您的模型。

@ Html.HiddenFor(M => m.Date);

对于覆盖,请查看此答案

https://stackoverflow.com/a/5196392/5557777

答案 1 :(得分:0)

你可以像这样覆盖编辑器How can I override the @Html.LabelFor template?,但我认为你可以使用ViewBag更轻松地完成它:

public virtual ViewResult Create() {
 ViewBag.Title = "Create";
 return View("Test");
}

public virtual ViewResult Update() {
 ViewBag.Title = "Update";
 return View("Test");
} 

在视图中:

@string.format("{0} Date" , ViewBag.Title )