Razor语法中的文本框默认值

时间:2011-07-12 16:57:08

标签: asp.net asp.net-mvc asp.net-mvc-3 razor

    <div class="editor-label">
        @Html.LabelFor(model => model.UserName)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.AccountModel.UserName)
        @Html.ValidationMessageFor(model => model.AccountModel.UserName)
    </div>

在此页面上加载(查看加载),我希望用户名文本框的值从标准的aspnet成员资格信息中自动填充。如何将此默认值分配给文本框。请帮忙。谢谢

1 个答案:

答案 0 :(得分:4)

在控制器操作中,您可以填充视图模型并在其上设置相应的属性。因此,假设您的观点被强烈输入MyViewModel

[Authorize]
public ActionResult Foo()
{
    var model = new MyViewModel
    {
        UserName = User.Identity.Name
    };
    return View(model);
}

在视图中简单地说:

<div class="editor-label">
    @Html.LabelFor(model => model.UserName)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.UserName)
    @Html.ValidationMessageFor(model => model.UserName)
</div>

如果您的视图模型具有某个AccountModel属性,则必须在控制器操作中实例化并填充它。在我的例子中,我已经展平了视图模型。