mvc3路由设置为id,id2 id3

时间:2011-06-30 22:49:22

标签: asp.net-mvc-3 asp.net-mvc-routing

我有以下区域路线设置。

context.MapRoute(
    "Admin_default3",
    "Admin/{controller}/{action}/{id}/{id2}/{id3}",
    new { action = "Index" }
);
context.MapRoute(
    "Admin_default2",
    "Admin/{controller}/{action}/{id}/{id2}",
    new { action = "Index"}
);

context.MapRoute(
    "Admin_default",
    "Admin/{controller}/{action}/{id}",
    new { action = "Index", id = UrlParameter.Optional }
);

当命中控制器动作时,我会执行以下操作,将params放入可读变量名称中。

public ActionResult Search(Guid? id, int? id2, bool? id3)
{
    Guid? source = id;
    int daysOld = id2;
    bool includeNonEnglish = id3;

    //.... Action!
}

我应该继续这样吗?我应该创建过多的路线吗?

谢谢

1 个答案:

答案 0 :(得分:3)

我会创建更多路线。这样,你就有了:

Html.ActionLink(title, "Action", "Controller", new { source = <value>, daysOld = <value>, includeNonEnglish = <value> });

而不是:

Html.ActionLink(title, "Action", "Controller", new { id = <value>, id2 = <value>, id3 = <value> });

除此之外(比如使用jQuery进行AJAX调用,使用Json来指定参数)。它会使事情更具可读性。如果您正在使用或将要使用T4MVC,它也会有所帮助。