現在、MVC4 でいくつかのユーザー プロファイル編集フォームを作成しており、テストのために、次のようなフォームの読み取り専用テキスト ボックスに UserId プロパティをレンダリングしていました。
<li>
@Html.LabelFor(model => model.UserId)
@Html.TextBoxFor(model => model.UserId, new { @readonly="readonly"})
</li>
編集フォームの完成が近づいてきたので、このテキストボックスを削除しました。これを行うと、保存時にモデルがコントローラーに送り返され、整数のデフォルト値が0になり、行を更新できないためEntity Frameworkが爆発します。だから私はこれをフォームに追加しました:
<li>
@Html.HiddenFor(model => model.UserId, new { @readonly="readonly"})
</li>
これは安全な動きですか?このようなものに ViewBag を使用する必要がありますか? プロファイルの詳細ページで、次のような編集ボタンをレンダリングします。
@Html.ActionLink("Edit", "Edit", new { id=Model.UserId })
UserId がリンクでレンダリングされることを意味します。これは安全で安全ですか、それとも UI でモデルと ID を移動する方法を再考する必要がありますか?
ティア、