0
为什么此调用操作不提供操作方法名称?如何获取Url.action以生成操作方法名称
@Url.Action("Index","NewStore")
它只是生产...
localhost/TemplateUI/en-CA/Atomic/Wassabi/Store
我需要它来产生对年底/指数....
为什么此调用操作不提供操作方法名称?如何获取Url.action以生成操作方法名称
@Url.Action("Index","NewStore")
它只是生产...
localhost/TemplateUI/en-CA/Atomic/Wassabi/Store
我需要它来产生对年底/指数....
这是因为Url.Action
助手使用您的路线登记在全球的.asax。并且由于您的行动名称为Index
,因此我猜想在您的路线注册中,您已指定action="Index"
的默认值,因此将其省略。
例如,如果您有以下默认路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Index" }
);
}
因为controller = "Home"
和action = "Index"
约束已指定了/
和/Home
是绝对等同的URL并且调用Home
控制器的Index
作用。
所以当你尝试用一些助手构建一个url时会发生同样的情况:它使用你的路由。
如果您需要在url中包含动作名称,请确保您已在路由定义中删除了action
约束条件。