【发布时间】: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