【问题标题】:Can't redirect aspx page to controller in .NET MVC 4 with url param无法使用 url 参数将 aspx 页面重定向到 .NET MVC 4 中的控制器
【发布时间】:2014-09-22 10:41:00
【问题描述】:

我正在尝试将向 .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 值)

谢谢

【问题讨论】:

  • defaults: new { controller = "MyController", ... 应该是 defaults: new { controller = "My", ...
  • 对不起,我在编辑器中重新编写了代码,为控制器和操作提供标准名称......我忘记正确编写它
  • 如果我没记错的话,你是在控制器动作方法中重定向,而不是在路由配置中,路由配置是为了……嗯,路由和路由的配置……
  • 嗯,问题是我需要将调用这个aspx页面重定向到一个controlle action并获取这个参数值。我怎样才能做到这一点?
  • 我认为问题不在您的 RouteConfig 上,而是在您的 web.config 中,您需要告诉 IIS .aspx 不会被正常处理,而是传递给 MVC。它与 system.webServer->handlers 有关TransferRequestHandler"

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


【解决方案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" }
    );

【讨论】:

  • myPage.aspx 真的没有退出,我不希望它存在。最后我得到了它没有处理参数,只有'url:mypage.aspx'和'defaults:new {controller =“My”,action =“MyAction”'。我需要在不存在 mypage.aspx 的情况下保持这种重定向。谢谢。
猜你喜欢
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 2021-02-21
  • 2012-10-15
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
相关资源
最近更新 更多