Я использую книгу «Pro ASP.NET MVC 5» Адама Фримена, работая над веб-приложением Sports Store, которое он использует. Я попытался повторить этот пример в «Компьютерном магазине», и все работало хорошо до того момента, когда мне нужно было добавить дополнительные функции в корзину («Сводка» частичного представления).Метод действия не найден в контроллере
На странице 'Сводка' PartialView определяется в корзину контроллера:
public PartialViewResult Summary(Cart cart)
{
return PartialView(cart);
}
Сводка Вид:
@model ComputerStore.Domain.Entities.Cart
@{
ViewBag.Title = "Summary";
}
<div class="navbar-right">
@Html.ActionLink("Checkout", "Index", "Cart",
new { returnUrl = Request.Url.PathAndQuery},
new { @class = "btn btn-default navbar-btn"})
</div>
<div class="navbar-text navbar-right">
<b>Your cart:</b>
@Model.Lines.Sum(x => x.Quantity) item(s),
@Model.CaluclateTotalValue().ToString("c")
</div>
И, конечно же, в файле _Layout.cshtml, я вызываю метод действий :
@Html.Action("Summary", "Cart")
При запуске веб-приложения, я получаю следующее сообщение об ошибке:
-A public action method 'Summary' was not found on controller 'ComputerStore.WebUI.Controllers.CartController'.
Теперь, прежде чем указывать HttpPost и HttpGet, позвольте мне сообщить вам, что пример Sports Store отлично работает с использованием того же кода, что и выше. Я пробовал множество способов исправить это, и я знаю, что на это ответили несколько раз здесь, но я просто не понимаю, почему это не работает. Более того, все пакеты являются обновлениями.
просто не по теме комментарий, я замечаю ваши пространства имен, которые вы, вероятно, с использованием ваши модели домена в качестве моделей просмотра. На раннем этапе стоит начать использовать модели просмотра, которые не совпадают с моделями вашего домена. – webnoob
@webnoob Я просто следую за книгой. Перед этой частью примера Адам использует пару моделей просмотра для передачи информации. На самом деле есть файл CartIndexViewModel.cs, который передает информацию о Cart в представление из CartController. Возможно, в остальной части главы будут изменения. – Superiom
Ahh Хорошо, я не читал книгу, так извинился. Стоит иметь в виду, если книга не покрывает его, но удачи! – webnoob