2012-04-12 8 views
2

アプリケーションのドロップダウンリストをレンダリングする部分的なビューがあります。ドロップダウンで項目を選択すると、別の部分表示がレンダリングされます。パーシャルビューを再利用できるようにする

このドロップダウンリストは、アプリケーションのいくつかの場所に存在しますが、アプリケーションを選択するときには、各ページで異なる部分表示をレンダリングする必要があります。ドロップダウンを再利用可能にする簡単な方法はありますか?つまり、部分ビューがレンダリングされるページに応じて別のdata_urlを設定する必要があります。

部分図:

<script type="text/javascript"> 
    $(function() { 

     $('#ApplicationsDropdownList').change(function() { 
      var url = $(this).data('url'); 
      var applicationId = $(this).val(); 
      $('#RolesForApplication').load(url, { applicationId: applicationId}) 
     }); 
    }); 

</script> 

<div> 

<label for='ApplicationsDropdownList'>Application:</label> 

@Html.DropDownListFor(
     x => x.SelectedApplicationId, 
     new SelectList(Model.Applications, "Value", "Text"), 
     "-- Select Application --", 
      new 
      { 
       id = "ApplicationsDropdownList", 
       data_url = Url.Action("ViewRolesTableForApplication", "Index") 
      } 
    ) 
</div> 

コントローラー:

public ActionResult ViewRolesTableForApplication(string applicationId) 
     { 
... 
return View("_RolesTableForApplicationPartial"); 
     } 
+0

多分私は何かを誤解していますが、なぜあなたはあなたのpartial_viewのModelの別の部分であるdata_urlを含む文字列を作ることができませんか? – DMulligan

+0

@AFinkelstein私はあなたが誤解しているとは思わない...私はそれが私が探していたシンプルで非常に明白な答えかもしれないと思います – woggles

+0

母、私は助けることができてうれしい。私はそれを答えにします。 – DMulligan

答えて

1

あなたは、あなたの部分図に使用するモデルにdata_urlを含む文字列プロパティを追加することができます。

Applicationsを含むモデルに加えて、public string DataUrl { get; set; }もあります。

関連する問題