参数值在行动中缺少'#'

Ani*_*ran 2 javascript c# asp.net-mvc-4

我只是打电话给

window.location = '../MyController/MyAction?campId=' + campId + '&campName=' + campName;
Run Code Online (Sandbox Code Playgroud)

并在行动中接收它作为

[HttpGet]
    public ActionResult MyAction(int campId, string campName)
    {
Run Code Online (Sandbox Code Playgroud)

...

我的问题是来自js am传递campName值'Anish#'但是在行动中我只得到'Anish'.在没有采取行动的#之后的价值.我怎么能解决这个问题.

任何建议表示赞赏.

Dar*_*rov 5

您需要使用encodeURIComponentjavascript函数对所有参数进行URL编码:

window.location.href = '../MyController/MyAction?' + 
    'campId=' + encodeURIComponent(campId) + 
    '&campName=' + encodeURIComponent(campName);
Run Code Online (Sandbox Code Playgroud)

或者如果您使用的是jQuery,您可以使用该$.param()函数来处理对参数值进行正确的URL编码:

var parameters = $.param({ campId: campId, campName: campName });
window.location.href = '../MyController/MyAction?' + parameters;
Run Code Online (Sandbox Code Playgroud)