Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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 覆盖剑道读取参数值_Javascript_C#_Asp.net Mvc_Kendo Ui_Kendo Asp.net Mvc - Fatal编程技术网

Javascript 覆盖剑道读取参数值

Javascript 覆盖剑道读取参数值,javascript,c#,asp.net-mvc,kendo-ui,kendo-asp.net-mvc,Javascript,C#,Asp.net Mvc,Kendo Ui,Kendo Asp.net Mvc,我有一个剑道下拉列表,它向它的读取请求发送一个额外的参数。比如说 @(Html.Kendo().DropDownList() .Name("MyDropdown") .HtmlAttributes(new { style = "width:100%" }) .Filter("contains") .Value(ID) .DataSource(source => { s

我有一个剑道下拉列表,它向它的读取请求发送一个额外的参数。比如说

@(Html.Kendo().DropDownList()
    .Name("MyDropdown")
    .HtmlAttributes(new { style = "width:100%" })
    .Filter("contains")
    .Value(ID)
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("Dropdown_Read", "Dropdowns", new { User = 1});
        });
    })
)
这工作正常,正如预期的那样,将值1传递给控制器并执行读取

根据用户与其他元素的交互,可以再次触发此读取,我已通过Javascript完成此操作:

var user = $(#UserList).val(); // 2 for example
$('#MyDropdown').data('kendoDropDownList').dataSource.read({ User: user});
这将触发读取功能,但用户值仍作为1而不是新值发送。对网络活动的检查表明:

请求URL: https://localhost:8080/Dropdowns/Dropdown_Read?User=1&User=2


似乎用户属性定义了两次,发送给控制器,然后控制器拾取第一个值,这是原始默认值。是否有方法覆盖此值并将新值发送到控制器?

这应该相对简单

如果更改代码:

.DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("Dropdown_Read", "Dropdowns", new { User = 1});
        });
    })

然后创建一个Javascript函数,返回要筛选的值:

i、 e

然后,这将获得所需的param结构,并从其他控件发送所选值。您需要输入一些检查代码,以确保选择了一个值,如果没有,则在允许的情况下发送一个默认值

这个链接也应该能帮到你


感谢您的帮助,我最终在我的C#控制器中使用了一个名称不同的“override”变量,如果定义了该变量,则该变量将是要使用的值(默认为null)。您的解决方案可能会更好地使用。我会试试,如果没问题的话,我会把它标记为完成。我经常使用这种技术。当您进行级联下拉时,它变得非常有用。
.DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("Dropdown_Read", "Dropdowns").Data("getFilterValue");
        });
    })
function getFilterValue(){
     var user = $('#UserList').val();
    .... other code removed for brevity
    return {User: user}; 
}