我很难获得HTML.ActionLink()创建正确的链接。
我的选择是:
但是当我导航到http://localhost:49242/en-us/PinnedSites时,我的选择是:
当然,所有这些网址都失败了。
这是我的html:
<li id="nav_pinning">
@Html.ActionLink( "pinned sites", "index", "PinnedSites")</li>
<li id="nav_addons">
@Html.ActionLink("add-ons", "index", "addons")</li>
<li id="nav_control">
@Html.ActionLink("tracking protection lists",
"index",
"trackingprotectionlists",
null,
null)</li>
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("favicon.ico");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{culture}/{controller}/{action}",
new { culture = "en-us",
controller = "Home",
action = "Index",
}
);
}
我的问题在哪里?是否有可能/ PinnedSites /实际上没有进入PinnedSitesController?
(我将积极关注此事,如果您希望我尝试或提供更多代码,请发表评论。)
答案 0 :(得分:2)
您是否将HomeController作为项目的一部分?如果是这样,你应该按照以下方式注册默认控制器:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
但是,除此之外,您是否尝试过将Route直接连接到PinnedSites控制器?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("favicon.ico");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{culture}/{controller}/{action}",
new { culture = "en-us",
controller = "PinnedSites",
action = "Index",
}
);
}