0

強く型付けされたビューモデルでajaxを使用してhtml.dropDownListヘルパーを使用しようとしています。プロジェクトの性質上、コードを投稿することはできません。ここでビューモデルとAjaxでHTML.DropDownListヘルパーを使用

基本的に私がやっている...強く使用してコントローラのメソッド

  • にAJAXポストを行うボタンをクリック
  • ビューモデルを入力経由MVCのビューをロード

    • TryUpdateModelは、Ajaxリクエスト
    のためparitalビューをレンダリングする要求
  • を処理するビューモデル
  • を解析します

    下記の記事によれば、問題は「ASP.NET MVCでは、HTTP POSTに応答してビューをレンダリングし、HTMLヘルパーを使用している場合は、バリデーションに失敗した「フォームを再表示する」ようにしてください。代わりに、「同じフォーム値を再表示」の

    http://blogs.msdn.com/b/simonince/archive/2010/05/05/asp-net-mvc-s-html-helpers-render-the-wrong-value.aspx

    、私はhtml.dropDownListは、ビューモデルで同じ値に設定する必要があります。

    誰でもカスタムdropDownListヘルパーを知っているのですか、これを達成する方法がありますか?手動にModelState項目を削除し、ブログごと

    • と考え、私はすでに試した

      物事/ ...動作しませんでした - だけでデフォルト設定 - ビューモデルに値をピックアップしていませんでしたドロップダウンリストの最初の項目に

    • 普通の選択リストを書いて...しかし、私は自分のカスタムのDropDownListヘルパーを書くループ

    • で複数選択リストを胸が張り裂けるよので、これはずさんな、面倒であると考えられ... wanteホイールに事前に

    おかげで、あなたの問題は、正確であるが、私は同様の問題を持っていたものを私に完全に明確ではない

  • 答えて

    0

    その再発明を避けるために、D。私はHtml.DropDownListFor(、SelectListItem [])ヘルパーを使用しました。ポストバックでは、値を選択した値に設定します。ポストバックビューでは、元のモデルのすべてのフィールドを持つ必要はありません。ここで

    @Html.DropDownListFor(model => model.SelectedValue, MyModels.DropDownSelectables()); 
    

    私はmodel.SelectedValue変数として、私はselectlistitemsの配列を作った私の(別々の)モデル内の選択した値を求めています。残りはオートマティックです。

    はD

    +0

    プロジェクト私はHtml.DropDownListForメソッドを持っていないMVC v2.0.50727のを、使用して働いている、それがお役に立てば幸いです。問題は、html.dropDownListの値が、ajaxリクエストに対してpartialviewが返された後で、ビューモデルの内容に設定されていないことです。 @DerDee –

    +0

    さて、私はちょうど自分自身のヘルパードロップダウンリスト拡張を書くことになった。 –

    関連する問題