8

EditorTemplate を使用する場合、モデルの値を画面に表示するだけでなく、コントローラーにもポストする場合、どのヘルパーを使用すればよいですか?

すなわち。TextBoxFor を使用する場合:

@Html.TextBoxFor(model => model.RoomTypeName)

...その後、ユーザーはテキストを修正できます...

私はむしろテキストを表示したいのですが、私が使用した場合:

@Html.DisplayTextFor(model => model.RoomTypeName)

...その後、それはコントローラーに戻されません。

テキストを表示し、モデルの状態が有効であることを確認して、2 番目の非表示フィールドを追加する唯一の方法です。

@Html.DisplayTextFor(model => model.RoomTypeName)
@Html.HiddenFor(model => model.RoomTypeName)

私はそれが機能することを知っていますが、それを行うためのよりエレガントな方法があるかどうか疑問に思っています.

ありがとうございました、

マーク

4

1 に答える 1

13
@Html.DisplayTextFor(model => model.RoomTypeName)
@Html.HiddenFor(model => model.RoomTypeName)

これは、達成したいことを行う非常にクリーンで標準的な方法です。

まったく同じことを行う独自の HTML ヘルパーを 1 行保存するだけで作成すると、将来そのコードを読む可能性のある他の人や自分自身を混乱させるだけです。

于 2013-07-03T21:50:45.800 に答える