2012-02-21 23 views
1

創建一個partialview輸入一些個人details.I必須包括2下拉列表,1國家和其他國家。當我選擇國家作爲美國,那麼它想填充從DB.If所有州名我們選擇其他國家,我想要替換國家下拉列表文本框。我可以如何使它成爲可能?有條件地在MVC3中填充partialview控件

謝謝。

+0

[在MVC 3 Razor視圖級聯下拉列表]的可能重複(http://stackoverflow.com/questions/4458970/cascading-drop-downs-in-mvc-3-razor-view) – 2012-02-21 10:51:25

回答

2

我的建議是使用jQuery的ajax請求來填充下拉列表選項取決於國家的價值。 Ajax請求可以指向另一個PartialView將返回下拉或取決於參數文本框...

讓我知道如果你有任何落實的煩惱,我會喜歡幫你...


動作控制器:

public ActionResult StateNames(string country) 
{ 
    if(country == "US") 
    { 
     var model = GetArrayOfUsStates(); 
     return View(model); 
    } 
    else 
    { 
     var model = string[0]; 
     return View(model); 
    } 
} 

部分查看您的下拉列表:

@model string[] 

@if(Model.Length == 0) 
{ 
    <input type="text" name="state" /> 
} 
else 
{ 
    <select name="state"> 
     @foreach(var state in Model) 
     { 
      <option value="@state">@state</option> 
     } 
    </select> 
} 

你的頁面結構:

<select id="countryDDL"> 
    ... 
</select> 
<div id="stateDDLHolder"> 
</div> 

jQuery代碼來獲得下拉:

$.ajax({ 
     url: '/YourController/StateNames/' + $('#countryDDL').val(), 
     success: function(data) { $('#stateDDLHolder').html(data); } 
}); 
+0

我該如何使用jquery? – 2012-02-22 13:00:18

+0

我已經爲你添加了一個例子......請讓我知道如果它中的某些東西不起作用......我直接在回答窗口中寫入它並且沒有測試它,所以可能會出現一些拼寫錯誤等等。無論如何,希望它會幫助.. – 2012-02-23 07:51:04

+0

目前我加載所有狀態到我的dropdownlist.Is有可能使用jquery替換狀態dropdownlist文本框? – 2012-02-23 10:01:14