无法使用url param将aspx页面重定向到.NET MVC 4中的控制器

时间:2014-09-22 10:41:01

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我正在尝试将对.aspx页面的请求重定向到我的MVC 4 .NET应用程序中的控制器。 实际上,我有一个参数通过GET传递给URL,如下所示:

myPage.aspx?param1=helloworld

在我的控制器中,我有以下操作

class MyController : Controller
{
    public void MyAction(string param1)
    {
        [...]
    }
}

在RouteConfig.cs中,我尝试过以下情况,但这些选项都有效。我找不到有关如何传递url编码的GET参数的信息。 (如果我尝试访问没有参数的aspx页面并重定向到没有参数的控制器操作,我也会收到404错误。

    public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        [...]

        routes.MapRoute(
           name: "name",
           url: "myPage.asp.aspx",
           defaults: new { controller = "My", action = "MyAction", param1 = "defaultValue" }
        );

        routes.MapRoute(
           name: "name",
           url: "myPage.asp.aspx{value}",
           defaults: new { controller = "My", action = "MyAction", param1 = "defaultValue" }
        );


       routes.MapRoute(
           name: "name",
           url: "myPage.asp.aspx?value={value}",
           defaults: new { controller = "My", action = "MyAction", param1 = "defaultValue" }
        );


    }
}

我怎样才能使这个工作(我明确需要在该表格的URL中传递de值)

由于

1 个答案:

答案 0 :(得分:1)

在myPage.aspx中:

Response.Redirect("http://www.someMVC4site.com/my/MyAction/helloworld");

在MVC4项目的RouteConfig.cs中

routes.MapRoute(
       name: "name",
       url: "{controller}/{action}/{param1}",
       defaults: new { controller = "My", action = "MyAction", param1 = "defaultValue" }
    );