Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DropDownList Change()不';我好像没开枪_Javascript_C#_Asp.net Mvc_Razor - Fatal编程技术网

Javascript DropDownList Change()不';我好像没开枪

Javascript DropDownList Change()不';我好像没开枪,javascript,c#,asp.net-mvc,razor,Javascript,C#,Asp.net Mvc,Razor,所以,我已经用头撞桌子一天了。我知道这可能是一个简单的问题,但答案却在我眼前。帮忙 我有一个从局部视图构建的模态上的下拉列表。我需要处理DropDownList上的.Change(),将所选文本从DropDownList传递给控制器中的一个方法,然后该方法将为我提供在列表框中使用的数据。下面是我的研究得出的代码片段 模态函数上的所有其他控件都是完美的 有人能看到我哪里出了问题,或者给我指出了正确的方向吗 进程控制器 传递给$.getJSON方法的回调函数错误。您需要传递对函数的引用,而不是调用它

所以,我已经用头撞桌子一天了。我知道这可能是一个简单的问题,但答案却在我眼前。帮忙

我有一个从局部视图构建的模态上的下拉列表。我需要处理DropDownList上的.Change(),将所选文本从DropDownList传递给控制器中的一个方法,然后该方法将为我提供在列表框中使用的数据。下面是我的研究得出的代码片段

模态函数上的所有其他控件都是完美的

有人能看到我哪里出了问题,或者给我指出了正确的方向吗

进程控制器
传递给
$.getJSON
方法的回调函数错误。您需要传递对函数的引用,而不是调用它

试试这个:

$.getJSON("/Process/RegionFilter/" + $("#ddl_Region > option:selected").text(), updateProperties);
此外,为了获取所选下拉选项的文本,您需要使用
text()
函数:

$("#ddl_Region > option:selected").text()

请参见

Yep-非常确定数据就是ajax响应,在这种情况下,这是最好的解决方案;这段对话已经结束。我只做一个评论:如果您使用的是
dropdownlistforhelper
,那么您需要使用
Multiple=“Multiple”
。但你不是,所以你不需要它。这是一种冗余,
listboxhelper
已经能够接受多个值。
... 

@{ var regions = (from r in Model.Properties
                select r.Region).Distinct(); }
<div>
    <label>Region Filter: </label>
    <select id="ddl_Region" name="ddl_Region">
        @foreach (var region in regions)
        {
            <option value=@region>@region</option>
        }
    </select>
</div>

// ListBox that needs to update after region is selected
<div> 
    @Html.ListBoxFor(x => x.Properties, Model.Properties.Where(p => p.Class == "Comparable")
        .Select(p => new SelectListItem { Text = p.Name, Value = p.Id }),
        new { Multiple = "multiple", Id = "lb_C" })
</div>

...
$(function () {

    // other events that work perfectly
    ...

    $("#ddl_Region").change(function () {
            $.getJSON("/Process/RegionFilter/" + $("#ddl_Region > option:selected").attr("text"), updateProperties(data));
        });
});

function updateProperties(data, status) {
    $("#lb_C").html("");
    for (var d in data) {
        var addOption = new Option(data[d].Value, data[d].Name);
        addOption.appendTo("#lb_C");
    }
}
$.getJSON("/Process/RegionFilter/" + $("#ddl_Region > option:selected").text(), updateProperties);
$("#ddl_Region > option:selected").text()