【问题标题】:How to assign a dynamic value to the label helper in asp.net MVC如何为asp.net MVC中的标签助手分配动态值
【发布时间】:2013-10-24 18:28:43
【问题描述】:

我正在开发一个 Asp.net MVC 2.0 Web 应用程序。在我的表单中,我有不可编辑的字段,所以我想将它们显示为标签而不是文本框。

我强烈地将我的模型与视图绑定。所以,我需要将此标签与模型中的一个字段相关联。

这就是我想要做的:

 <%=html.LabelFor(model=>model.changedby)%>

<%=html.DisplayFor(model=>model.changedby,XYZ)%>

但是,它什么也没显示..请帮助

更新2:

基本上我想做的是添加操作。我有一个创建视图,并且该视图有一个表单。

我强烈将此视图与模型绑定。所以,我可以直接将表单字段与模型属性相关联。

例如:

<label> Name</label> <%=Html.TextBoxFor(m=>m.name)

所以,无论我在文本框中输入什么,它都会存储在模型中的 m.name 中。

如果输入的文本是 "Avinash" ,则 m.name 给出值 "Avinash"

我认为我在这个程度上是正确的:

同样...

我有一个只读字段,用户不能更改它的值。

<label>Changed On</label>  <label> DateTime.Now </label>

如何将 m.ChangedOn 与标签值绑定(DateTme.Now)

这样它将导致 m.Changedon 为 DateTime.now

更新3:

这就是我要写的..

                    <td >
                        <%=Html.LabelFor(Model=>Model.CreatedOn) %>:
                    </td>
                    <td>
                        <%=Html.HiddenFor(Model=>Model.CreatedOn) %>
                    </td>

【问题讨论】:

    标签: asp.net-mvc html-helper


    【解决方案1】:

    您无需使用 &lt;label&gt; 进行包装,因为 MVC LabelFor 会自动为您创建这些 html 标签

    所以改变这个

    <label>
      <%=html.LabelFor(model=>model.changedby)%>
    </label>
    

      <%= Html.LabelFor(model=>model.changedby) %>
    

    更新:

    如果您想在发布表单时将数据发送到服务器,请确保表单字段中有数据。只有input,select,textarea 之类的表单字段会发布到服务器,而不会显示label, span, div, etc 之类的标签值

    如果你需要发布标签值,你可以使用隐藏它

    <%= Html.LabelFor(model=>model.changedby) %>
    <%= Html.HiddenFor(model=>model.changedby) %>
    

    如果两者都有,您的隐藏字段将发布到服务器,其中包含相同的值

    控制器代码

    public ActionResult Index()
    {
    MyviewModel model=new MyviewModel();
    model.ChangedOn=DateTime.Now;
    return View(model);
    }
    
    For Save
    
    public ActionResult Save(MyviewModel model)
    {
    
     model.ChangedOn; // this property will show you hidden value
     //If you need current time, since the rendered time was old. Its good to assign like below
     //model.ChangedOn=DateTime.Now
    }
    

    【讨论】:

    • @Murali..更新了我的问题
    • @Avinash,更新了我的答案
    • @Murali.how to i assign XYZ value to model.changedby..对不起,我觉得很困惑..我知道要将数据发布到服务器,我们应该只使用表单字段..
    • 如果您使用 javascript 编辑 model.changedby 标签值,那么您还需要更新 hiddenfield。给隐藏字段一些 id 并使用 $('#hiddenid').val($('#label-id').text()); 设置值
    • @Murali..我不是在编辑模型,而是在创建一个新模型并将其发送给控制器。
    【解决方案2】:

    使用这个

    <%= Html.DisplayFor(model => model.changedby) %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2016-11-20
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 2012-02-23
      相关资源
      最近更新 更多