【发布时间】:2012-02-21 10:41:46
【问题描述】:
创建一个部分视图以输入一些个人详细信息。我必须包括 2 个下拉列表,1 个用于国家,1 个用于国家。当我选择国家作为美国时,它希望从 DB 中填充所有州名。如果我们选择我想要的其他国家将状态的下拉列表替换为文本框。我怎样才能使它成为可能?
谢谢。
【问题讨论】:
标签: javascript jquery asp.net-mvc-3 partial-views
创建一个部分视图以输入一些个人详细信息。我必须包括 2 个下拉列表,1 个用于国家,1 个用于国家。当我选择国家作为美国时,它希望从 DB 中填充所有州名。如果我们选择我想要的其他国家将状态的下拉列表替换为文本框。我怎样才能使它成为可能?
谢谢。
【问题讨论】:
标签: javascript jquery asp.net-mvc-3 partial-views
我的建议是使用 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); }
});
【讨论】: