处理“;额外的“;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)
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);