我正在使用razor视图引擎开发ASP.net MVC 3.0应用程序。
我正在制作ajax帖子如下:
$.ajax({
type: "post", contentType: "application/json;charset=utf-8",
url: GetErrorCountUrl,
success: function (data) {
});
此处,URL如下:
var GetErrorCountUrl = '@Url.Action("GetErrorCount", "WError", new { Id= "Token", id1 = "Token1", id2= "Token2" })';
GetErrorCountUrl = GetErrorCountUrl.replace('Token',pkid).replace('Token1',cid).replace('Token2',itemclass);
我正在构建正确的网址。我使用alert(url)进行了检查。它正在击中控制器动作。
在我的控制器动作中,
如果我这样做:Request.params [“Id”] - >我得到了正确的值
Reuqest.params["id1"] --> I am getting null values
但是,当我这样做时:
reuqest.Params[0] --> correct value
request.params[1] ---> Correct value
使用索引而不是名称时,我得到了正确的值。
我需要根据参数名称而不是索引来获取这些值。
请帮忙。
除第一个参数外,我无法获取其他参数的值
答案 0 :(得分:0)
首先,变量的名称应该以JavaScript中的低位字母开头。具有第一个大写变量的名称应仅用于类(构造函数中使用的函数)。在stackoverflow上使用的代码的格式化使用其他颜色的JavaScript类。例如,要在JavaScript中定义数据,应使用var d = new Date();
而不是var d = new Date();
。所以像var GetErrorCountUrl = "some string";
这样的代码看起来很奇怪。我知道JavaScript不是您的主要语言,但使用该语言时使用的名称转换效果会更好。
现在回到你的主要问题。在我看来
GetErrorCountUrl.replace('Token',pkid).replace('Token1',cid).replace('Token2',itemclass);
不是你真正想要的。如果字符串GetErrorCountUrl
包含'Token1'
,那么子字符串'Token'
的{{1}}部分将首先替换为'Token1'
,然后替换为pkid
})永远不会工作。
要解决此问题,您可以将订单或替换更改为以下内容,例如:
cid