我试图在MVC中设置自定义路由,但遇到一些问题。
到目前为止,这是配置文件: -
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "inbox",
url: "inbox",
defaults: new { controller = "Mail", action = "Inbox", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
这是我视图中的链接: -
@Html.ActionLink("Inbox", "inbox")
问题是输出html正在生成为http://localhost/Home/inbox
我只想让它成为http://localhost/inbox
感谢您的帮助
答案 0 :(得分:0)
您正在使用Html.ActionLink
的错误重载。使用您正在使用的版本时,它使用当前上下文来确定控制器,而您希望使用Mail
控制器。因此,要解决此问题,请将其更改为显式指定控制器,如下所示:
@Html.ActionLink("Inbox", "Inbox", "Mail")