记住,我是asp.net mvc的新手,所以我意识到也许我的问题真的很容易解决。:)
我开始了一个基于MVC模式的新的ASP.NET项目,si O得到了整个HomeController和工作网站。因此,我添加了一个新的Controller (CoursesController)和一个新的路由。但这不管用。
展示一些作品。
CoursesController.cs -它的一部分
public class CoursesController : Controller
{
private readonly CourseStore _store = new CourseStore();
//
// GET: /Course/
public ActionResult Index()
{
return View(_store.GetCourses());
}RouteConfig.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Courses",
url: "Courses/{action}/{courseid}",
defaults: new { controller = "Courses", action = "Index", courseid = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}_Layout.cshtml -相关链接部分
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
<li>@Html.ActionLink("Courses", "Index", "Courses")</li>
</ul>结果如果我单击_layout中的链接,我被发送到url http://localhost/Courses/,并得到回复,您没有权限查看这个目录或页面.。但是,如果我手动将url更改为http://localhost/Courses/Index,一切都可以正常工作。
请记住,ActionLink只生成http://localhost/Courses/
任何帮助都是非常感谢的。
发布于 2014-03-26 20:41:19
下面是从用户WeTTTT粘贴的正确答案。
我相信你有一个文件夹“课程”在你的网站根目录下,这将导致网址根本没有击中mvc路由。解决这一问题的一个快速方法是添加routes.RouteExistingFiles = true;但这不是建议的,可能会导致其他问题。您是否希望/允许将“课程”文件夹名更改为其他可以绕过路由的内容?- WeTTTT Mar21,12:11
https://stackoverflow.com/questions/22554352
复制相似问题