2013-10-11 4 views
-1

Я использую предустановленный проект по умолчанию для создания моего собственного приложения.
Я добавил свой собственный контроллер MyController и новый каталог видов My с index.cshtml.Почему мой собственный контроллер приводит к ошибке 404?

Это код контроллера:

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

namespace WebProject1.Controllers 
{ 
    public class MyController: Controller 
    { 
     // 
     // GET: /My/ 

     public ActionResult Index() 
     { 
      return View(); 
     } 

    } 
} 

Вот мой RouteConfig.cs:

// ... 
public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "My", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 
// ... 

Однако, когда я начала отладки и перейти к /My/ об ошибке 404 с сообщением по линиям The resource or one of its dependencies cannot be found. Показано.

Как заставить контроллер работать?

+0

Пожалуйста, пост код маршрута также. О чем ваш контроллер по умолчанию указан в маршруте? – ckv

+0

У вас есть указатель на месте? – HBhatia

+0

@HBhatia Да, я создал '/ Views/My/Index.cshtml'. –

ответ

0

Это почти наверняка опечатка где-то. Я предлагаю воссоздать ваш контроллер и просматривать с нуля.

0

Если у вас нет каких-либо сконфигурированных областей, вы должны иметь доступ к вашему действию по адресу localhost/My/Index или localhost/My, если у вас есть маршрут по умолчанию с действием в качестве индекса.

Ошибка также предоставит вам список областей, в которых ASP.NET выполняет поиск вашего местоположения.

0

Создайте собственный маршрут и поместите его перед своим маршрутом по умолчанию.

так:

// ... 
public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
    routes.MapRoute(
      name: "me", 
      url: "me/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "My", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 
// ... 

надеюсь, что это работает ...

Смежные вопросы