【问题标题】:ASP.NET MVC, jQuery/AJAX cascading dropdownlist issues with LINQ2SQL?LINQ2SQL 的 ASP.NET MVC、jQuery/AJAX 级联下拉列表问题?
【发布时间】:2009-04-14 06:56:43
【问题描述】:

前提: 根据第一个中选择的值获取下拉列表的内容。 文字数据成功返回。 LINQ2SQL Datacontext 上的 LINQ 查询失败。

作为这个 MVC/LINQ/jQuery 方面的新手,我一直在努力争取 HOURS,试图找出我对代码的理解有什么问题。当我对我的值进行硬编码时,一切正常,但是当我尝试查询 LINQ2SQL 数据上下文时,各种奇怪的事情开始发生,最后,当我将查询结果复制到一个新对象中时,一切都恢复了!请原谅我在 LINQ 方面缺乏语言能力,但是,我认为这与 LINQ2SQL 数据的“连接性”有关。当我创建另一个代表查询数据的列表时,一切都很好,但如果我尝试使用查询数据本身,jQuery 的世界就会崩溃(而且也没有错误——这很难弄清楚)。

我基本上想要参考或解释 LINQ2SQL 的“连接性”以及它是如何/为什么会出现问题的,尤其是在这些远程/异步调用情况下!

请参阅下面的代码 - 希望它有意义并提前感谢您 :) 基本布局:

<script type="text/javascript">

        $(document).ready(function() {
            $("#CaseTypeCategoryId").change(function() {
                $.getJSON("/Cases/CaseNatures", { caseTypeCategoryId: $("#CaseTypeCategoryId option:selected").val() }, function(data) {
                    $("#CaseNatureId option").remove();
                    $("#CaseNatureId").fillSelect(data);
                });
            });
        });

    </script>
            <p>
                <label for="CaseTypeCategoryId">Case Type:</label>
                <%= Html.DropDownList("CaseTypeCategoryId") %>
            </p>
            <p>
                <label for="CaseNatureId">Case Nature</label>
                <select id="CaseNatureId" name="CaseNatureId></select>
            </p>

控制器.aspx

最初只是一个

SelectList() { new ListItem() { Text = "--Select A Case Nature--", Value = "" }}
它工作得很好!然后我尝试了 公共 JsonResult CaseNatures(int caseTypeCategoryId) { 返回 this.Json(_caseService.GetCaseNatures(caseTypeCategoryId) .ToList()); }

这失败了 - 没有 javascript 错误,没有编译问题,直到我尝试手动将数据转储到新列表中并最终确定:

公共 JsonResult CaseNatures(int caseTypeCategoryId) { 列表 returnList = new List(); returnList.Add(new ListItem() { Text = "--Select A Case Nature--", Value = "" }); _caseService.GetCaseNatures(caseTypeCategoryId) .ToList() .ForEach(p => returnList.Add(new ListItem() { Value = p.CaseNatureId.ToString(), Text = p.CaseNatureText })); 返回 this.Json(returnList); }

【问题讨论】:

  • 没有人能帮我找到一个很好的参考资料,在那里我可以了解这些和 LINQ2SQL 的类似问题吗?

标签: asp.net-mvc linq-to-sql jquery


【解决方案1】:

here - 类似的问题。

【讨论】:

  • 完美——我偶然发现了一个类似的解决方案!谢谢
【解决方案2】:

在你的句子中使用 JsonRequestBehavior.AllowGet:

this.Json(_caseService.GetCaseNatures(caseTypeCategoryId) .ToList(),JsonRequestBehavior.AllowGet);

【讨论】:

    猜你喜欢
    • 2016-12-15
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2014-05-22
    相关资源
    最近更新 更多