我正在使用一个标准的MVC 3 Web项目,我写了我的HTML在一个标准的HTML文件,然后复制/粘贴到_layout.cshtml文件。通过包含所有正确的RenderBody()和@ Html.Partial(“_ LogOnPartial”),页面可以正常工作,但_LogOnPartial中的ActionLink不会呈现href。LogOnPartial呈现与空白href - MVC 3
Html.ActionLink("Log On", "LogOn", "Account")
会出来为:
<a href="">Log On</a>
这是你得到的标准链接不变,当你启动一个MVC 3 Web项目。
注册的航线有:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Products",
"{controller}/{action}/{id}",
new {controller = "Products", action = "Index"});
routes.MapRoute(
"Newsletter",
"{controller}/{action}/{emailAddress}",
new { controller = "Newsletter", action = "Index" });
routes.MapRoute(
"Account",
"{controller}/{action}/{id}",
new { controller = "Account", action = "LogOn", id = UrlParameter.Optional });
}
我不明白为什么会这样,但在Visual Studio它不强调这让我觉得这是不正常看到的AccountController行动或控制器。任何人有任何想法?
只是为了排除显而易见的问题,您在'AccountController'中确实有一个'LogOn'动作,不是吗? – 2011-04-19 14:07:45
是的,我愿意。这是作为默认软件包的一部分。事实上,有一个LogOn和一个LogOn(HttpPost)以及一个LogOn.cshtml。 – John 2011-04-19 14:18:33