【问题标题】:How to bind data to Model's "Display" property with MVC3?如何使用 MVC3 将数据绑定到模型的“显示”属性?
【发布时间】:2013-04-27 09:27:36
【问题描述】:

我有一个model

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

Test.cshtml 页面中使用Html.LabelFor 辅助方法

@Html.LabelFor(m => m.Date )

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

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

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

我想用Create page: "Date" 和Update page: "Update Date" 显示@Html.LabelFor(m => m.Date )。我知道 MVC3 的正常方式是否不能做到这一点。我希望您的理想可以编辑Html.LabelFor hepler 方法或任何将数据绑定到控制器上的操作方法中的Html.LabelFor 的方法

【问题讨论】:

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


    【解决方案1】:

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

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

    要覆盖,请看这个答案

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

    【讨论】:

      【解决方案2】:

      您可以像 How can I override the @Html.LabelFor template? 那样覆盖 editorfor,但我认为您可以使用 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 )
      

      【讨论】:

      • 感谢您的回答。但是,我的项目不使用 ViewBag。您是否更理想地在控制器上的操作方法中将数据绑定到 Html.LabelFor(可以使用自定义帮助器来覆盖它)。注意:仅在控制器上,不能在 Razor 视图上绑定数据。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      相关资源
      最近更新 更多