【发布时间】:2014-02-19 17:40:19
【问题描述】:
我很难在 ASP.NET MVC4 中获取操作 url。
我正在使用以下 razor 语法创建链接:
@Html.ActionLink("some text", "Create", "Reports")
我得到的输出是:
<a href="/?action=Create&controller=Reports">some text</a>
我想要的是:
<a href="/Reports/Create">some text</a>
任何想法,我错过了什么?
更新:
RouteConfig如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// ignoring .aspx, .asmx files
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.IgnoreRoute("{resource}.asmx/{*pathInfo}");
routes.MapPageRoute("DefaultRoute", string.Empty, "~/Default.aspx");
routes.MapPageRoute("MapsRoute", "Map", "~/Default.aspx");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Reports", action = "Index", id = UrlParameter.Optional }
);
}
第二次更新
如果我从路由配置中注释以下行,我会按预期获得 URL。知道为什么吗?
routes.MapPageRoute("DefaultRoute", string.Empty, "~/Default.aspx");
routes.MapPageRoute("MapsRoute", "Map", "~/Default.aspx");
【问题讨论】:
-
您能告诉我们您的路线是如何配置的吗?
-
正如 rla4 所暗示的,这可能是路线问题,我认为问题在于您的路线。
ActionLink助手的语法正确。
标签: asp.net-mvc asp.net-mvc-4 razor-2 razorengine