【问题标题】:how to create cascading ddl's using entity framework model first using MVC3?如何使用 MVC3 首先使用实体​​框架模型创建级联 ddl?
【发布时间】:2023-04-02 00:53:01
【问题描述】:

我是 MVC 实体框架的新手,我的模型是一个实体框架模型,我有一个与省表相关的商业表,而省表又与国家表相关。

所以,当我要创建一个 Commerce 时,我应该能够先选择国家,然后再选择属于该国家的省份。

到目前为止,我已经设法显示了国家和所有省份,但是我不知道一旦选择了一个国家,如何更改省份......

我看过一些帖子,其中解释了如何使用 razor(我正在使用 .net)创建模型(首先编写代码或类似的东西)来做这样的事情

如果您能在这方面帮助我,我将不胜感激。

【问题讨论】:

标签: .net asp.net-mvc-3 entity-framework ef-model-first


【解决方案1】:

简短的回答是您将回发并过滤省份,或者使用 jQuery 并即时执行。

我自己,我会回帖……但这只是我自己。

【讨论】:

  • 回发是无用的传输和两个不需要的数据集的额外绑定加载。
  • @Adam Tuliper 谢谢你的关心。
【解决方案2】:

使用 Jquery 将是这种情况的最佳解决方案。即使您还没有使用它。 保存回发是值得的。这是一个州(父)和县(子)关系的例子。

    <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]
public static County[] GetCounties(int Stateid)
{
    County[] countiesArr = StatesCountyModel.GetCountyForState(Stateid).ToArray();
    return countiesArr;     
}

我想它应该对你有帮助。如果您是 Jquery 的新手,请告诉我。您只需在项目中包含几个 javascript 文件即可使用此代码。

普雷文

【讨论】:

  • 谢谢!我对 jquery 完全陌生,再次感谢您的帮助!
  • Praveen,我将最后一个 jquery 文件添加到我的项目中,并且我将它引用到我的页面,我看不到它是否工作,因为我无法声明 [WebMethod] 因为它没有'似乎没有被认出来,我还需要做点别的吗?
  • 普拉文,再次感谢您的帮助。看,我将最后一个 jquery 文件添加到我的项目(jquery-1.7.1.js)中,然后我从我的页面引用它,但我无法尝试该解决方案,因为我的项目似乎无法识别 [ WebMethod]...我还应该使用什么?
  • 加里!抱歉回复晚了。您应该包含 System.Web.Services 命名空间。如果您在项目中找不到它,请转到参考并添加新参考(在 .Net 选项卡下列出)System.Web.Services。
猜你喜欢
  • 2014-09-25
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 2014-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多