私は厳密に型指定されたビュー、編集、OrderModelというモデルを持っています。このビューでは、OrderTypeModelという名前のモデルを持つ強く型付けされた部分ビューを使用しています。 jqueryuiのオートコンプリートテキストボックスを含む部分ビュー、_OrderTypeAutoComplete。私はこのコードのビューをレンダリングする場合は、MVC3厳密に型指定された部分的なビューのモデルバインディング
public ActionResult Edit(){
return View();
}
私の編集ビューには、次のカミソリのマークアップ
<div class="editor-field">
@Html.Partial("_OrderTypeAutoComplete")
@Html.HiddenFor(model => model.OrderTypeID)
@Html.ValidationMessageFor(m => m.OrderTypeID)
</div>
が含まれています、私はこれをレンダリングするときに私のパーシャルビューは、このかみそりマークアップ
@{
Layout = null;
}
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
@Html.AutoCompleteFor(model => model.OrderTypeID, x => x.OrderType, "Items","Orders")
が含まれていますすべてが素晴らしいですし、私のオートコンプリートは素晴らしいです(オートコンプリートエクステンションを使用)。とにかく、初期のOrderModelで何かを初期化する必要があったので、コントローラのコードをこれに変更しました。私は、ビューをレンダリングするとき
public ActionResult Edit(){
return View(OrderService.GetInitializedOrderModel()); //returns a new OrderModel
}
は今、私は例外を取得:辞書に渡さ モデルアイテムは、「Testing.Models.OrderModel」型であるが、この辞書は、型「テストのモデルアイテムが必要です。 Models.OrderTypeModel '
Html.Partial(「_ OrderTypeAutoComplete」)@私の見解 でこの行の私が付属していないときレイザーエンジンが部分図の罰金のためのビューのためのOrderModelとOrderTypeModelを作成するようですOrderModelこれにより同じ結果が得られます。
public ActionResult Edit(){
return View(new OrderModel())
}
私はここで何が起こっているのか分かりません。私は単純に、OrderModelモデルのビューの単純なドロップダウン値を提供しようとしています。これらの値は、jqueryポストバックを必要としないほど小さくなっています。それは私のモデルでHttp My Editアクションを取得するために初期化している値です。
ご協力いただければ幸いです。ありがとう。
@ Html.Partial( "_ OrderTypeAutoComplete")は正しく動作しますか?データを渡すのではなく、部分的に実装するからです。どうやって? –
それは動作しますが、私はビューをモデルに渡すことができない場合にのみ開始します。 RazorがViewとPartial Viewのモデルを作成するようです。私がビューにモデルを提供すれば、それはPartialを爆撃します。だから、もし私がポストバックして、それらがポストバック時に妥当性検査エラーであれば、それはページがリフレッシュされたときにも失敗する。 –
モデルクラス(OrderModelおよびOrderTypeModel)のコードを追加できますか? –