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 }
);

ASP.Net MVC4 routing

您有两个选择:

  • 你可以将方法中的参数命名为"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的查询字符串值