Я делаю некоторую практику с 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 просто содержит имя пользователя в виде строки. Он не является нулевым или пустым.
Как я могу отредактировать вторую строку EditorFor, чтобы использовать Model.PosterName по умолчанию? Должен ли я вместо этого использовать DisplayFor для нередактируемого поведения?
Код, который я написал выше, не заполняет EditorFor какими-либо значениями.
Спасибо!