1

发现了一个新问题,所以我要创建一个新帖子。Razor 引擎今天没有帮我完成我的工作..

使用此代码,我的屏幕上没有打印 ViewBag.user.UserName

<td>@Html.TextBoxFor(m => m.UserName, new { @class = "validate[required]", disabled = "disabled", value = @ViewBag.user.UserName }) @Html.ValidationMessage("usernameVal", "*")</td>

现在,如果我像这样放在 TextBoxFor 之外:

@ViewBag.user.UserName 

我得到用户名。

Razor 是否应该足够聪明地检测到这样的情况?

4

1 回答 1

0

我认为那是因为您正在尝试设置值属性,剃须刀将使用模型值进行设置。

但是,您可以在调用帮助程序之前使用代码块使用视图包中的模型值更新模型值:

@{
    Model.UserName = ViewBag.user.UserName;
}
<td>@Html.TextBoxFor(m => m.UserName, new { @class = "validate[required]", disabled = "disabled" }) @Html.ValidationMessage("usernameVal", "*")</td>

但是你为什么要这样做,而不是在模型中已有价值呢?

于 2012-11-22T16:46:24.340 回答