我是MVC-entity框架的新手,我的模型是一个实体框架模型,我有一个商业表,它与一个省表有关系,而省表又与国家表有关系。
因此,当我将要创建一个商业,我应该能够选择首先国家,然后是属于该国家的省份。
到目前为止,我已经成功地显示了国家和所有省份,但我不知道如何在选择国家后更改省份……
我看过一些帖子,里面解释了如何使用razor(我正在使用.net)和创建模型(先编写代码或类似的东西)来做类似的事情。
如果你能在这方面帮助我,我将不胜感激。
发布于 2011-11-27 06:51:16
简短的答案是,您将回发并过滤省份,或者使用jQuery即时执行。
就我自己而言,我会发布back...but,这就是我。
发布于 2011-11-28 19:01:55
如果您还没有使用Jquery,那么使用Jquery将是这类situation.even的最佳解决方案。保存回发是值得的。下面是一个州(父级)和县(子级)关系的示例。
<asp:DropDownList ID="ddlState" runat="server">
</asp:DropDownList>
<br />
<asp:DropDownList ID="ddlCounty" runat="server">
</asp:DropDownList>
下面是实现级联下拉列表的jquery代码。
$(document).ready(function () {
$("#<%= ddlState.ClientID %>").change(function () {
var sourceddl = "<%= ddlState.ClientID %>";
var stateid = $("#<%= ddlState.ClientID %> option:selected").val();
var Stateid = { Stateid: stateid };
$.ajax({
type: 'POST',
url: 'CacheSample.aspx/GetCounties',
data: JSON.stringify(Stateid),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
if (data.d) {
var options = [];
if (result.d) {
for (var i = 0; i < result.d.length; i++) {
options.push('<option value="',
result.d[i].countyID, '">',
result.d[i].countyName, '</option>');
}
$("#<%= ddlCounty.ClientID %>").html(options.join(''));
}
}
},
error: function () {
alert("Error! Try again...");
}
});
});
});
我正在使用webmethod为选定的州取消Counties。
[WebMethod]
public static County[] GetCounties(int Stateid)
{
County[] countiesArr = StatesCountyModel.GetCountyForState(Stateid).ToArray();
return countiesArr;
}
我想这应该会对你有帮助。如果你是Jquery的新手,请让我知道。你只需要在你的项目中包含一些javascript文件,你就可以使用下面的代码了。
Praveen
https://stackoverflow.com/questions/8282140
复制相似问题