Kalpesh Khandla Ответов: 0

Ресурс не может быть найден(сначала MVC-код).


Я создаю простое веб-приложение с использованием MVC(Code first) Которые состоят из двух страниц, одна из которых позволяет администратору добавлять категорию и ее описание, а другая-выбирать категорию и вставлять статус в эту конкретную категорию.Когда я запускаю страницу состояния, я получаю ошибку 404: ресурс не может быть найден.

Вставка категории работает правильно, но я получаю ошибку на странице состояния.

Что я уже пробовал:

Вот конфигурационный файл my Route:

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

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

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

           
        }
Я пытался project name>Properties>Web>Specific страница, но все же я получаю ту же ошибку.

Nathan Minier

Routeconfig полезен только частично. А как насчет кода для вашего StatusController?

Kalpesh Khandla

использование системы;
использование системы.Коллекции.Общий;
Код для моего StatusController :

использование System. Linq;
использование системы.Сеть;
использование System. Web.Mvc;
использование Статускрафта.Модели;
использование Статускрафта.Услуга;

пространство имен StatusCraft.Контроллеры
{
публичный класс StatusController : Controller
{

StatusServices StaServices = новые StatusServices();

//
// Получить: / статус/

public ActionResult CreateStatus(int? StatusId)
{
if (StatusId = = null)
{
возвращение смотреть();
}
ещё
{
return View(StaServices.GetStatusByStatusID (Конвертировать.ToInt32(StatusId)));
}

}

[HttpPost]
public ActionResult CreateStatus(StatusMasterModel status, int? StatusId)
{
if (StatusId = = null)
{
пробовать
{
статус.CreatedBy = 1;
Стасервисы.AddStatus(статус);
ViewBag. msg = " вставить успешно";
ModelState.Четкий();
}
поймать (исключение бывший)
{
ViewBag.МСГ = ех.Метод toString();

}
возвращение смотреть();

}
ещё
{
Варе состояние обновления = StaServices.GetStatusByStatusID (Конвертировать.ToInt32(StatusId));
состояние обновления.StatusName = статус.StatusName;
состояние обновления.CategoryId = статус.CategoryId;
состояние обновления.UpdatedBy = 1;
состояние обновления.IsActive = статус.Метод isactive;
состояние обновления.IsDeleted = статус.IsDeleted;
Стасервисы.Состояние обновления(состояние обновления);
return RedirectToAction ("StatusList");
}

}

public ActionResult StatusList()
{
return View(StaServices.GetStatusList());
}

}
}

Nathan Minier

Это выглядит правильно.

У вас есть файл /Views/Status/StatusList.cshtml в проекте? Это настройка, чтобы взять ваш тип модели?

Kalpesh Khandla

Да, есть statusList.cshtml и выглядит так, как показано ниже :

модель интерфейс IEnumerable&л@; statuscraft.модели.statusmastermodel&ГТ;

@{
Видовая сумка.Title = " Список Статусов";
Layout = " ~ / Views/Shared/_AdminLayout.cshtml";
}

StatusList



@формат HTML.ActionLink ("Создать Новый", " Создать")

@по каждому элементу (ВАР деталь в модели) {
}


@HTML-код.DisplayNameFor(модель =&ГТ; модель.Категория.Категория)

@HTML-код.DisplayNameFor(модель =&ГТ; модель.StatusName)

@HTML-код.DisplayNameFor(модель =&ГТ; модель.Создано)

@HTML-код.DisplayNameFor(модель =&ГТ; модель.CreatedDate)

@HTML-код.DisplayNameFor(модель =&ГТ; модель.UpdatedBy)

@HTML-код.DisplayNameFor(модель =&ГТ; модель.UpdatedDate)

@HTML-код.DisplayNameFor(модель =&ГТ; модель.IsDeleted)

@HTML-код.DisplayNameFor(модель =&ГТ; модель.Метод isactive)

@Html. DisplayFor(modelItem = & gt; item.Категория.Категория)

@Html. DisplayFor(modelItem = & gt; item.StatusName)

@Html. DisplayFor(modelItem = & gt; item.Создано)

@Html. DisplayFor(modelItem = & gt; item.CreatedDate)

@Html. DisplayFor(modelItem = & gt; item.UpdatedBy)

@Html. DisplayFor(modelItem = & gt; item.UpdatedDate)

@Html. DisplayFor(modelItem = & gt; item.IsDeleted)

@Html. DisplayFor(modelItem = & gt; item.Метод isactive)

@формат HTML.Actionlink панели("редактирование", "редактирование", новый { ИД=товар.StatusId }) |
@формат HTML.Actionlink панели("подробности", "Подробности", новый { ИД=товар.StatusId }) |
@формат HTML.Actionlink панели("удалить", "удалить", новый { ИД=товар.StatusId })

Nathan Minier

Ваш трубопровод выглядит правильно. Боюсь, все, что я могу предложить на данный момент, - это убедиться, что IIS Express делает правильные вещи. Извини, что больше ничем не могу тебе помочь.

F-ES Sitecore

Каков url-адрес страницы, которая не работает?

Kalpesh Khandla

Он находится на моем локальном компьютере и URL-адрес выглядит следующим образом
http://localhost:2870/Status/CreateStatus или список статусов

0 Ответов