我正在开发一个MVC 2.0 C#web Applciation。在我的一个表单中,我正在使用LabelFor()html帮助器。
我使用以下语法:
<%=Html.LabelFor(model=>model.Addedon)%>
在这里,对于这个标签,我想关联一个DateTime.Now
我试过这样的事情:
<%=Html.LabelFor(model=>model.Addedon,new{value=DateTime.Now})%>
但是,我收到一个错误,说这个帮助者有两个参数没有超载。请帮助
更新:
表单是创建表单/添加表单,它进行插入操作。所以,我正在构建一个模型并将该模型更新到数据库。
在那个模型中,我有一个名为createdby的字段。因此,我需要将此值与登录的用户名和执行插入操作相关联。
那么,如何将此用户名值与模型字段相关联,我需要显示为标签,以便它只读字段。
希望这说清楚..
答案 0 :(得分:3)
LabelFor
仅适用于您猜测它,呈现<label>
元素。
它还使用[Display]
和[DisplayName]
属性,因此您可以使用带有自定义名称的强类型标签。
你所追求的可能就是:
<div>
<%= Html.LabelFor(model => model.Addeon) %>
</div>
<div>
<%= Html.DisplayFor(model => model.Addeon) %>
</div>
因此LabelFor
将生成属性名称描述(例如“Addeon”),而DisplayFor
将呈现属性值。如果您需要自定义格式,DisplayFor
可以使用[DisplayFormat]
属性。您可以在视图模型的构造函数中设置默认属性值:
public class ViewModel
{
[Display(Name = "My awesome date")]
public DateTime Addeon {get;set;}
public ViewModel()
{
Addeon = DateTime.Now;
}
}
[编辑]
实际上,你的编辑会提出一个好的第二个问题,而不是把它放在这里。无论如何,在你的情况下,我会创建一个专用的视图模型,它将保存你需要的属性(例如用户名),并将填入控制器。其他所有内容在概念上都是相同的 - 视图将绑定到视图模型。