如何解决如何通过 ASP.NET MVC
我想创建一个动作控制器来读取 url 参数,然后执行相应的操作,但我不知道接下来要做什么。
以下是索引控制器。我想读取 'code' url 参数,然后用它做一些事情。
public ActionResult Index(string code)
{
//do stuff with 'code' param details
return View();
}
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 }
);
routes.MapRoute(
name: "Code",url: "{controller}/{action}/{code}",action = "Index"}
);
}
每当我尝试操作 url 时,什么也没有发生,当我使用断点时,代码参数保持为空。
以下是我尝试过的网址类型,但没有任何效果:
http://localhost:49218/?code=1234
http://localhost:49218?code=1234
http://localhost:49218/Index/?code=1234
解决方法
你为什么不这样做
public ActionResult Index(string id)
{
//do stuff with 'id' param details
return View();
}
并删除您的代码路由。
例如您可以使用这些网址
http://localhost:49218/Home/Index/1234
//or
http://localhost:49218/Home/Index/mycode1
或者你可以使用属性路由:
[Route("/")]
[Route("~/Home/Index/{id?}")]
[Route("~/{id}")]
public ActionResult Index(string id)
{
//do stuff with 'id' param details
return View();
}
在这种情况下,您可以使用这种网址:
http://localhost:49218
//or
http://localhost:49218/1234
//or
http://localhost:49218/mycode1
//or
http://localhost:49218/Home/Index/1234
//or
http://localhost:49218/Home/Index/mycode1
但是之前配置属性路由:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home",action = "Index",id = UrlParameter.Optional }
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。