ASP.Net MVC - ошибка не найдена - PullRequest
       10

ASP.Net MVC - ошибка не найдена

60 голосов
/ 15 февраля 2012

Я совершенно новичок в ASP.Net MVC.Я только что создал проект MVC3 в Visual Studio 2010. Движок представления - бритва.Когда я только что запустил приложение, оно показало правильный результат в браузере.URL-адрес http://localhost:4163/.Затем я применил «Сделать стартовой страницей» к Index.cshtml в папке ~ \ Views \ Home.Затем, когда я запустил приложение, URL-адрес стал http://localhost:4148/Views/Home/Index.cshtml, и он сказал, что ресурс не может быть найден.Что мне сделать, чтобы исправить это?Где выполняется сопоставление URL?

Файл Global.asax:

using System.Web.Mvc;
using System.Web.Routing;

namespace TEST
{

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(
            "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);
    }
    }
 }

Ответы [ 21 ]

1 голос
/ 13 января 2015

Просто добавьте это здесь - если у кого-то возникают проблемы, когда страница индекса на домашнем контроллере больше не загружается, это может быть потому, что вы еще не настроили StartUp Project . Щелкните правой кнопкой мыши проект, с которого вы хотите, чтобы ваше приложение запустилось, и установите его в качестве запускаемого проекта, и все будет хорошо.

1 голос
/ 09 августа 2014

Если вы используете IIS Express. Возможно, вы открыли другой проект, который использует тот же виртуальный каталог. Когда вы открыли 2-е решение, VS перераспределяет этот каталог IIS в другое место. В результате это не будет работать с разными проблемами. У меня была та же ошибка, что и у автора темы.

Исправить: Закройте все экземпляры VS Studio. Откройте VS с проектом, над которым вы работаете и перестраиваете.

0 голосов
/ 06 апреля 2018

У меня был контроллер с именем usersController, поэтому я попытался создать его в качестве стартовой страницы, изменив контроллер по умолчанию с Home на usersController, как показано ниже.

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

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "usersController", action = "Index", id = UrlParameter.Optional }
        );
    }

Решением было изменить значение контроллера по умолчанию для пользователей, а не usersController

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

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "users", action = "Index", id = UrlParameter.Optional }
        );
    }
0 голосов
/ 14 июля 2017

Для меня проблема была вызвана проблемой пространства имен.

Я обновил пространство имен своего проекта в классах своего веб-проекта с MyProject до MyProject.Web, но я забыл обновить Свойства проекта >> Пространство имен по умолчанию. Поэтому, когда я добавил новый контроллер, он использовал старое пространство имен. Все, что мне нужно было сделать, это исправить пространство имен в новом контроллере, и это сработало.

0 голосов
/ 15 февраля 2012

Вы можете изменить стартовую страницу внутри свойств вашего проекта (проект -> свойства проекта). На веб-вкладке вы можете выбрать specify page и изменить стартовую страницу на home/ или home/index. Это направит вас на нужную страницу в соответствии с вашими маршрутами. Адрес http://localhost:4148/Views/Home/Index.cshtml не работает специально, потому что он обрабатывается в соответствии с вашими маршрутами, в которых указывается, что URL должен быть http://localhost:4148/{controller}/{action}, а также необязательный / coeidid Event.

.

Если вы хотите узнать больше о маршрутизации, посмотрите здесь.

0 голосов
/ 18 мая 2016

У меня была такая же проблема, за исключением того, что я не использовал имя Index.cshtml для моего View, я сделал это, например, LandingPage.cshtml, моя проблема заключалась в том, что ActionResult в моем контроллере не было то же имя, что и у моего View Name (в этом случае мой ActionResult был назван Index ()) - это на самом деле очевидно и глупо с моей стороны, но я новичок в MVC, поэтому я не смогу разобраться с основами здесь и там.

Так что в моем случае мне нужно было изменить мой ActionResult на то же имя, что и мой View: LandingPage.cshtml

    public ActionResult LandingPage()
    {
        ProjectDetailsViewModels PD = new ProjectDetailsViewModels();
        List<ProjectDetail> PDList = new List<ProjectDetail>();

        PDList = GetProductList();
        PD.Projectmodel = PDList;


        return View(PD);
    }

Я новичок в MVC, поэтому, возможно, это поможет кому-то еще, кто новичок и борется с тем же, что и я.

0 голосов
/ 29 декабря 2015

Решил проблему, щелкнув правой кнопкой мыши по представлению, которое я хотел в качестве начальной страницы. После отображения ошибки «Не удается найти искомый ресурс». Просто щелкните правой кнопкой мыши свой проект, перейдите в Интернет и выберите «Текущая страница». Это решит проблему

0 голосов
/ 27 декабря 2015

Если вы перепробовали все вышеперечисленные решения, но проблема все еще сохраняется, воспользуйтесь этим простым решением Откройте отладчик facebook по этой ссылке , введите URL-адрес страницы и нажмите кнопку «Получить новую информацию для очистки». Это решит вашу проблему.

Причина (по-моему) в том, что API Facebook сохраняет текущее состояние страницы и показывает то же самое на своем собственном сервере. Если вы нажмете кнопку «Поделиться» во время кодирования, и ваша страница фактически не будет загружена, то API api не сможет найти эту страницу на сервере и сохранит состояние страницы как «ресурс не найден». Теперь он будет продолжать показывать одно и то же сообщение даже после загрузки страницы. Когда вы извлекаете страницу из отладчика Facebook, она разрешает все с нуля и сохраняет текущее состояние страницы, а затем кнопка «Поделиться» начинает работать без каких-либо изменений в кодировке.

0 голосов
/ 02 ноября 2015

в адресной строке на входе браузера следующим образом: ControllerName / ActionMethod не вводится ControllerName / ViewName например в адресной строке: http://localhost:55029/test2/getview cshtml код файла:

@{
Layout = null; 
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>MyView</title>
</head>
<body>
<div>            
</div>
</body>
</html>

и код файла cs:

public ActionResult GetView()
{
return View("MyView");
}
0 голосов
/ 15 февраля 2012

Начальная страница проекта asp.net mvc по умолчанию "Текущая страница". Просто откройте файл на стороне сервера и запустите проект. таким образом mvc открывает контроллер по умолчанию, который является homecontroller для вашего проекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...