2012-02-21 65 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