如何解决ASP.NET MVC路由协助
| 我有一个ASP.NET MVC 2 Web应用程序,应该从一个相当愚蠢的系统接收请求。有问题的系统希望它是一个PHP站点。不是。我收到的请求的格式为: http://myIP/index.php?oa = val1&da = val1&ud = val1 我有一个方法的控制器Index(string oa,string da,string ud)
但是我不知道如何将此请求路由到此控制器。我试过了
routes.MapRoute(
\"R\",\"index.php/{oa}/{da}/{ud}\",new { controller = \"Home\",action = \"Index\" }
);
但无济于事。如果请求的格式为Index.php / val1 / val2 / val3,则该方法有效,但是如上所示,当请求出现时,它将生成404。
谢谢。
解决方法
我只是将路由映射到\“ php \”页面。查询字符串参数不会转置到路由数据中。
routes.MapRoute(\"R\",\"index.php\",new { controller = \"Home\",action = \"Index\" });
然后在控制器上执行操作
public ActionResult Index() {
string oa = Request.QueryString[\"oa\"];
string da = Request.QueryString[\"da\"];
string ud = Request.QueryString[\"ud\"];
//do the rest of your logic here (obviously)
return View();
}
,该路由无效,因为QueryString不属于RouteData。最好将路由值与查询参数分开。
我只需映射index.php,然后在控制器中访问查询字符串。
,您可以使用以下路由:
routes.MapRoute(
\"php\",action = \"Index\",id = UrlParameter.Optional });
并使用此方法:
public ActionResult Index(string oa,string da,string ud){
....
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。