2011-11-01 9 views
6

あなたの全モデルに使用する方法(またはまね何か)完全なモデルのために@ Html.HiddenForを使う方法はありますか?

@Html.HiddenFor 

があります。

ので、代わりにこのような何かやって:

@Html.HiddenFor(model => Model.Person.Name) 
    @Html.HiddenFor(model => Model.Person.LastName) 
    @Html.HiddenFor(model => Model.Address.Street) 

使用私はすでにstackoverflowのとGoogleでそれを検索した次のようなもの(この例では動作しません)

@Html.HiddenFor(model => Model) 

を。しかし、それについては何も見つかりませんでした。

は、私はそう私のためのオプションではありませんだけHtml.HiddenFor IDを使用して、DBに保存されていない別のモデルのためのいくつかの値を保持する必要があります。

ありがとうございます!

+0

あなたがこれを行うにはしたくありません!あなただけがDBに保存するものの、それらが持続するために使用するセッションやクッキーを必要としない場合はそれ以外のクライアントは、など自分のアドレスを変更することができます...、それはサーバ側のバックアップを見て合格したエンティティの主キーを持つ必要がありますまたはローカルストレージか何かの代わりに – Milney

答えて

7

あなたが隠し入力になりたいプロパティを選択し、以下のようにモデルにHiddenInputAttributeを追加します。

public class MyModel 
{ 
    [HiddenInput] 
    public int MyProperty { get; set; } 
} 
+0

@ダリン&@ Haythemありがとう、私はこれらの週の両方の答えの終わりをテストします! – Gyocol

3

あなたはMVCContrib's Html.Serialize methodを見てみましょうことがあります。それはまったくのviewstateエミュレーションです(そして内部的には実際にViewStateを使用します:-))。

別のアプローチは、単に基礎となるデータ・ストアから対応するモデルを取得するためにこのID隠しフィールドとしてコントローラアクション使用内側一意のIDを格納することであろう。

関連する問題