我正在开发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>
答案 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) %>