从javascript(没有ajax)向控制器(MVC3)发送字符串参数

时间:2012-02-17 10:40:46

标签: javascript asp.net-mvc asp.net-mvc-3

我有这个简单的javascript代码:

var value = "I love programming";
window.location="Controller/Action/"+value;

在控制器页面中,我有:

public ActionResult(string value) {
   // do something
}

问题是来自控制器的value参数。这始终为空。

为什么?

参数类型是否仅限于int? (不使用ajax)

我可以向控制器发送一个int,它可以正确处理信息。但不是字符串。

1 个答案:

答案 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