1

我正在开发一个 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>
4

2 回答 2

2

您无需使用 包装<label>,因为 MVCLabelFor会自动为您创建这些 html 标签

所以改变这个

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

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

更新:

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

不过,如果您需要发布标签值,您可以使用 hidden 与它

<%= 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
}
于 2013-10-24T08:43:45.363 回答
0

用这个

<%= Html.DisplayFor(model => model.changedby) %>
于 2013-10-24T08:37:30.790 回答