2016-03-20 5 views
-1

Asp.net mvc 5は、カスケードコンボボックスでサブミットをクリックして1つの値を選択した後、Asp.net mvc 5は、1つの値を選択した後で部分表示をレンダリングします。

私は学習プロセスに入っているので、話題がある場合はお詫び申し上げます。私はSOのドロップダウンやコンボボックスについての最初の質問があります。私が使用しているコードを示すリンク:Retrieve fields from database without emulating them?。私は「提出」をクリックした後、条件が満たされた場合

は、どのように私は(StateId=1 Partial ViewStateId=2 Partial View、など)部分ビューをレンダリングしていますか?

つまり、カナダを国として選択し、2番目のリストでオンタリオ(StateId=1)を選択すると、オンタリオ州の人口統計情報(例)がある部分ページに移動することができます。

ありがとうございます。ところで、これらのドロップダウンリストはモーダルポップアップウィンドウ内に実装されていますが、今は関係ありません(興味のある方は後で投稿します)。

コントローラ、ビュー、モデルは、私が提供したリンクと同じです(コードのポストに問題があります)。

public ActionResult CountryList() 
    { 
     IQueryable countries = Country.GetCountries(); 

     if (HttpContext.Request.IsAjaxRequest()) 
     { 
      return Json(new SelectList(
         countries, 
         "CountryCode", 
         "CountryName"), JsonRequestBehavior.AllowGet 
         ); 
     } 

     return View(countries); 
    } 

    public ActionResult StateList(string CountryCode) 
    { 
     IQueryable states = State.GetStates().Where(x => x.CountryCode == CountryCode); 

     if (HttpContext.Request.IsAjaxRequest()) 
      return Json(new SelectList(
          states, 
          "StateID", 
          "StateName"), JsonRequestBehavior.AllowGet 
         ); 

     return View(states); 
    } 
+0

いくつかのコードサンプルを投稿することをお勧めします。 – Wtower

答えて

0

なぜ部分表示が必要ですか?これを解決する1つの方法は、フォームの値としてStateIdを使用し、送信ボタンを追加し、コントローラでフォーム呼び出しを行い、StateIdパラメータに基づいて、必要なビューをレンダリングすることです。

+0

ネガをお寄せいただきありがとうございます – Dixon

+0

なぜ部分表示ですか?私はいくつかの部分的なビューをそれぞれ含むビューをグループ化している私のサイトの異なる部分にアクセスするためにこのアプローチを使用しています。カスケーディング上の「成功」の組み合わせは、ユーザーをその特定の「部門」に連れて行きます。投稿の問題を処理する方法を学ぶと、サンプルを投稿します。 – Dixon

+0

Martinさんに感謝します。私の質問に基づいて少しサンプルコードを投稿できますか?私が実際に達成しようとしているのは、このカスケードDDLメソッドを使用して移動することです。これは、モーダルポップアップにマウントされていいですね。前もって感謝します。私は代わりにDDLナビゲーションメニューを使用できることを知っています。 – Dixon

関連する問題