Назад | Перейти на главную страницу

Ошибка ASP.NET MVC

У меня есть приложение MVC в платформе .NET 3.5, которое размещено в IIS 7. Я создал приложение в корне IIS 7. Мое приложение работает нормально, когда я пытаюсь получить доступ по пути "http: // localhost". Но если я попытаюсь получить доступ к любому файлу, находящемуся в папке" Просмотры ", я получаю следующую ошибку.

Ресурс не найден. Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Просмотрите следующий URL-адрес и убедитесь, что он написан правильно.

Я перепробовал все способы и средства, чтобы исправить эту ошибку, но тщетно. Был бы признателен, если бы anybdy мог помочь мне определить проблему.

Спасибо

В ASP.NET MVC вы не просматриваете файлы просмотра напрямую. Вы должны использовать маршруты, которые настроены в событии Application_Start () вашего сайта.

Например, новый проект ASP.NET MVC добавляет этот маршрут по умолчанию в global.asax:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",                           
    new { controller = "Home", action = "Index", id = "" }  
);

Он также добавляет контроллер и действие по умолчанию:

public class HomeController : Controller {
  public ActionResult Index() {
    ViewData["Message"] = "Welcome to ASP.NET MVC!";
    return View();
  }
}

И представление в разделе Views / Home с именем Index.aspx.

Вместо использования адреса http://mysite.com/Views/Home/Index.aspx вы бы использовали http://mysite.com/Home/Index

Вы можете узнать больше о маршрутизации здесь: http://www.asp.net/learn/mvc/#MVC_Routing

Я хочу кое-что добавить: я почти уверен, что вам действительно нужно добавить переделку .ASPX на свой сервер IIS. Если вы используете IIS6, это можно сделать, выполнив следующие действия:

  1. Щелкните правой кнопкой мыши свой сайт
  2. Перейти к свойствам
  3. Вкладка "Домашний каталог" и затем выберите "Конфигурация".
  4. На «Картах приложений с подстановочными знаками» добавьте путь к вашему .ASPX. Наконец, снимите флажок «Проверить, существует ли файл».

Без описанных выше шагов ваш ASP.NET MVC не будет работать должным образом. У меня был этот опыт раньше, и мой нынешний хозяин, ASPHostCentral, посоветовал мне эти шаги выше :)

Удачи!

  1. Щелкните правой кнопкой мыши свой сайт
  2. Перейти к свойствам
  3. Щелкните вкладку Домашний каталог и выберите Конфигурация.
  4. На «Картах приложений с подстановочными знаками» добавьте путь к вашему .ASPX. Наконец, снимите флажок «Проверить, существует ли файл».

Я обнаружил новую причину этой ошибки: если вы используете Resharper, он предлагает изменить имя обработчика событий, но если вы нажмете «Да», это не изменит имя события объекта в файле Global.asax. Мне не кажется, что объект в рамке, но он заметен

Вы можете увидеть эти файлы, если вам действительно нужно - например, если это простые файлы .html - с помощью маршрута Ignore:

routes.IgnoreRoute("Views/{name}.html");

Это позволит вам напрямую переходить к любому файлу .html, находящемуся в папке Views, без определения маршрутов, контроллеров и т. Д. Довольно приятно, насколько легко система Routes входит и выходит в зависимости от того, что вы от нее хотите.

Вы можете изучить маршруты за 4 шага здесь: http://www.asp.net/learn/mvc/#MVC_Routing