我正在用 MVC4 做一些练习。我的实践项目是一种简单的评论板/论坛,允许注册用户和匿名用户发表评论。
目前,我已经设置了我的代码,这样即使是注册用户也可以在提交小名称+消息表单时输入他们想要的任何名称。我想要的是为注册用户禁用此行为,而不是使用从登录信息中获取的用户名。
理想情况下,注册用户的名称框已经加载了他们的用户名并且不可编辑。当表单通过验证以确保名称和消息都不是空的时,将使用此用户名。
这是我的视图代码:
<div class="editor-label">
@Html.LabelFor(x => x.comment.Name)
</div>
<div class="editor-field">
@Html.ValidationMessageFor(x => x.comment.Name)
<br />
@if (User.Identity.Name=="") {
@Html.EditorFor(x => x.comment.Name)
} else {
@Html.EditorFor(x => x.comment.Name, Model.PosterName)
}
</div>
请注意,Model.PosterName 只是将用户的用户名保存为字符串。它不为 null 或为空。
如何编辑第二个 EditorFor 行,以便使用 Model.PosterName 作为默认选项?我是否应该使用 DisplayFor 来代替不可编辑的行为?
我上面编写的代码不会用任何值填充 EditorFor。
谢谢!