处理“;额外的“;ASP.Net MVC5路由中的params

本文关键字:路由 params MVC5 ASP 处理 Net | 更新日期: 2023-09-27 18:19:35

我需要处理以下路径:

http://mpdev.website.com/Account/ExternalLogOn?LogonTicket=c3792319c8711a0dd465bbd6f6b31ea913b42db7&PID=1137565&ReturnUrl=/Home/CompReq?EC=151120TXAM

帐户控制器中的ExternalLogon操作会根据LogonTicket和PID之间的检查自动将用户登录。然后它应该重定向到ReturnUrl。

我将如何修复/Home/CompReq路由以处理EC参数,以及如何修改Home Controller中的Action?

我的RouteConfig:中只有一条路由

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

这个链接运行得很好,但我知道我上面没有任何参数。

http://mpdev.website.com/Account/ExternalLogOn?LogonTicket=c3792319c8711a0dd465bbd6f6b31ea913b42db7&PID=1137565&ReturnUrl=/Home/MyInfo

家庭控制器动作定义如下:

public ActionResult CompReq(string eventcode)

ExternalLogon定义:

ExternalLogOn(string LogonTicket, int? PID, string User, string EC, String State, string ReturnUrl)

处理“;额外的“;ASP.Net MVC5路由中的params

ReturnUrl值应进行url编码:

http://mpdev.website.com/Account/ExternalLogOn?LogonTicket=c3792319c8711a0dd465bbd6f6b31ea913b42db7&PID=1137565&ReturnUrl=%2FHome%2FCompReq%3FEC%3D151120TXAM

CompReq操作应具有与查询参数名称相同的功能参数名称:

public ActionResult CompReq(string EC)

ExternalLogon操作应具有适当的参数:

ExternalLogOn(string LogonTicket, int? PID, string ReturnUrl)

在ExternalLogOn中,您重定向到ReturnUrl参数:

return Redirect(ReturnUrl);