如何为asp.net MVC中的标签助手分配动态值

时间:2013-10-24 08:26:24

标签: asp.net-mvc html-helper

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

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

这就是我想要做的事情:

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

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

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

Updated2:

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

我强烈地将这个视图绑定到model.So,我可以直接将表单字段与模型属性相关联。

前:

<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

Updated3:

这就是我写的......

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

2 个答案:

答案 0 :(得分:1)

你不需要用<label>换行,因为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
}

答案 1 :(得分:0)

使用此

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