私は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 または空ではありません。
Model.PosterName をデフォルトのオプションとして使用するように、2 番目の EditorFor 行を編集するにはどうすればよいですか? 編集不可能な動作の代わりに、おそらく DisplayFor を使用する必要がありますか?
上記のコードでは、EditorFor に値がまったく設定されていません。
ありがとう!