ASP.Net MVC4 routing
本文关键字:routing MVC4 Net ASP | 更新日期: 2023-09-27 18:05:42
我在主控制器中有这个方法:
public ActionResult RequestExamReview(string EC)
我在我的视图中有这个链接(在调试模式下):
http://localhost:50909/Home/RequestExamReview/201507LH123
但是当我调试到方法并检查EC时,它是空的。
我做错了什么?我使用的是默认路由,我是否需要创建一个新的路由定义:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
您有两个选择:
-
你可以将方法中的参数命名为"id",就像在你的路由中定义的那样
public ActionResult RequestExamReview(string id)
-
你可以指定一个新的路由值ec作为参数(但我不建议这样做)
如果你要这样做,它看起来像这样:
routes.MapRoute(
name: "Default",
url: "Home/RequestExamReview/{ec}",
defaults: new { controller = "Home", action = "RequestExamReview" }
);
- 你可以用这个url代替:
http://localhost: 50909/Home/RequestExamReview吗?电子商务= 201507 lh123
- 您可以使用
Bind
属性将参数重命名为id
public ActionResult RequestExamReview([Bind(Prefix="id")] string EC)
我不建议添加新路由,因为最好保持较少的路由数量以降低复杂性。你会发现,随着应用的发展,如果你只是为了自定义变量名而添加新路由,那么管理路由的数量会变得很痛苦。在你的情况下,我建议只使用url的查询字符串值