Ajax调用未通过Url.Content从视图传递“&”到控制器

时间:2018-12-13 19:06:32

标签: javascript asp.net-mvc kendo-grid asp.net-ajax kendo-asp.net-mvc

Ajax调用未通过Url.Content从视图将“&”传递给控制器​​。

例如,如果testIdVal值为“ Interface Class&Function”,则来自以下代码。仅将“接口类”传递给控制器​​,而忽略“&功能”。

    $("#testdiv").data("kendoWindow").refresh({
        url: "@Url.Content("~/Customer/Test?Id=")" + testIdVal  + "&Flag=T"
    }).center().open();

1 个答案:

答案 0 :(得分:0)

&用作URL查询字符串中的定界符。如果要使用值&本身,则需要对其进行编码。

// JavaScript:
encodeURIComponent("&");
// Output: %26

因此,您需要将testIdVal设置为“接口类%26功能”。

$("#testdiv").data("kendoWindow").refresh({
    url: "@Url.Content("~/Customer/Test?Id=")" + encodeURIComponent(testIdVal) + "&Flag=T"
}).center().open();

查询字符串采用?var1=val1&var2=val2&var3=var3 ...的形式。如果不对&符号进行编码,则任何解释URL的人都会认为您正在尝试声明一个名为“ Function”的新变量。