我有这个简单的javascript代码:
var value = "I love programming";
window.location="Controller/Action/"+value;
在控制器页面中,我有:
public ActionResult(string value) {
// do something
}
问题是来自控制器的value
参数。这始终为空。
为什么?
参数类型是否仅限于int? (不使用ajax)
我可以向控制器发送一个int,它可以正确处理信息。但不是字符串。
答案 0 :(得分:3)
您可能需要在global.asax中设置一个路由来处理字符串参数,即:
RouteTable.Routes.MapRoute(
"ValueRoute",
"{controller}/{action}/{value}",
new
{
controller = "Yourcontroller",
action = "Youraction",
value = UrlParameter.Optional
}
);
这是最重要的东西,所以它可能不适合你。
正如您在下面的评论中所说的那样,[更新1] ,更改参数名称的值=&gt; id 应该解决问题,而无需使用附加路线。< / p>
[更新2] - 根据sandeep的评论,您还可以选择网址上的名称 - 值对,即window.location =“Controller / Action?value =”+ yourValue