0

我正在开发 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 的字段。因此,我需要将此值与登录的用户名相关联并执行插入操作。

那么,如何将此用户名值与模型字段相关联,我需要显示为标签,以便它将是只读字段。

希望这清楚..

4

1 回答 1

3

LabelFor只是为了,你猜对了,渲染一个<label>元素。它还使用[Display]and[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;
    }
}

[编辑]

实际上,您的编辑会提出一个很好的第二个问题,而不是把它放在这里。无论如何,在您的情况下,我将创建一个专用的视图模型,该模型将保存您需要的属性(例如用户名)并填写在控制器中。其他一切在概念上都是相同的——视图将绑定到视图模型。

于 2013-10-24T07:55:36.727 回答