如果不向URL添加索引,则无法加载ASP.NET MVC控制器索引操作

时间:2011-06-22 17:57:41

标签: asp.net-mvc-2

这个问题从今天开始,我不明白为什么!我有一个名为“Course”的控制器,它有一个Index动作。所以一般来说,我应该只需导航到http://domain.com/Course即可查看该页面。但截至今天,如果我在网址中不包含“索引”,即http://domain.com/Course/Index,我就无法找到资源。

我的课程负责人:

[HandleError]
    public class CourseController : Controller
    {
        OIEPRepository repo = new OIEPRepository();

        public ActionResult Index()
        {
            var courses = repo.GetCourseCategoriesByCulture(SiteGlobals.UICulture).ToList();
            return View(courses);
        }

        [AcceptVerbs("GET")]
        public ActionResult Detail(int id)
        {
            var course = repo.GetCourseById(id);
            if (course != null)
                return View(course);
            else
                return RedirectToAction("Index");
        }

    }

我的Global.ascx代码背后:

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

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

            /*routes.MapRoute(
                "Detail",
                "{controller}/{id}",
                new { controller = "Course", action = "Detail", id = 0 }
            );*/

 }

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

            RegisterRoutes(RouteTable.Routes);
        }

任何想法发生了什么?

1 个答案:

答案 0 :(得分:0)

它是否不需要HttpGet属性修饰[AcceptVerbs(“GET”)]和详细操作一样。