未找到Pluralsight 404错误

时间:2013-11-19 15:31:16

标签: asp.net asp.net-mvc-3 asp.net-mvc-4

我在Pluralsight示例中有关于MVC3的问题。我是MVC的新手,我有一个看似简单的问题。我下载了示例代码并将Routemap添加到global.asax.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace OdeToFood
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Cuisine",
                "cuisine/{name}",
                new { controller = "cuisine", action = "Search" }
                );

          /*  routes.MapRoute(
                "Cuisine",
                "{controller}/{name}",
                new { controller = "cuisine", action = "Search" }
                ); */


            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

并添加了控制器:

namespace OdeToFood.Controllers
{
    public class CuisineController : Controller
    {
        //
        // GET: /Cuisine/

        public ActionResult Search()
    {
        return Content("You have reached the Cuisine controller");
    }
}

}

如教程"Controller Action Parameter!"所示,运行应用程序并使用单词cuisine(所有拼写正确 - 甚至更改为全部大写作为测试),我仍然得到HTTP 404 "not found error"

我正在使用Windows 7VS 2012.net 4.5 installed上运行(这是一个新的框,可能没有以前的版本。MVC 3和{{1}在新的项目选择中,所以那些必须是isntalled correclty。

关于我做错的任何想法?我错过了一步吗?我看到MVC 4IIS6可能/必须在机器上?我开始相信IIS不会在Windows 7上运行。这是真的吗?我需要iis吗?示例代码正常工作,直到此更改...

当我学习这些新东西时,我有点过头了。感谢您的耐心和帮助!

2 个答案:

答案 0 :(得分:2)

尝试使用:

routes.MapRoute(
    "Cuisine",
    "cuisine/{name}",
    new { controller = "cuisine", action = "Search", name = "" }
    );

答案 1 :(得分:1)

尝试使用MVC路由调试器,以便可以直观地看到匹配的路由。我使用的是Phil Haack,但也有其他人可用:

Install-Package RouteDebugger

另外,您是否需要在搜索操作中使用 name 参数来匹配此路线?