Как вызвать метод View и передать параметр в метод? - PullRequest
0 голосов
/ 31 августа 2018

У меня есть список категорий на боковой панели.

@foreach (var item in Model) {
    <li><a href="~/Books/Category/@item.Title">@item.Title</a></li>
}

И я хочу отобразить товары этой категории, нажав на категорию. Для этого я реализовал метод ViewCategory.

public ActionResult ViewCategory(string name) { ... }

Но я не знаю, как правильно передать параметр. Я пытаюсь написать что-то подобное, но понимаю, что делаю что-то не так ...

@Html.Action("ViewCategory", "Books", new {Title=item.Title})

Помогите мне, пожалуйста

UPDATE

У меня есть индекс просмотра и метод, с помощью которого я вывожу список своих продуктов

    public ActionResult Index()
    {
        HttpResponseMessage response = WebApiClient.GetAsync("Books").Result;
        var booksList = response.Content.ReadAsAsync<IEnumerable<BookDto>>().Result;
        return View(booksList);
    }

Мне нужно отображать только товары, которые относятся к этой категории при выборе категории. Я перечисляю категории с PartialView

<ul>
@foreach (var item in Model) {
    @*<li><a href="~/Books/@item.Title"></a></li>*@
    @Html.Action("ViewCategory", "Books", new { name = item.Title })
}

Для этого я написал метод, который я пытаюсь использовать вместо

    public ActionResult ViewCategory(string name)
    {
        HttpResponseMessage responseBooks = WebApiClient.GetAsync("Books").Result;
        List<BookDto> booksList = responseBooks.Content.ReadAsAsync<IEnumerable<BookDto>>().Result.ToList();
        for (int i = 0; i < booksList.Count; i++)
        {
            if (booksList[i].CategoryName != name)
            {
                booksList.Remove(booksList[i]);
            }
        }
        return View("Category");
    }

Но теперь у меня есть NullReferenceException ...

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Вы можете использовать его следующим образом.

@{ Html.RenderAction("ViewCategory", "Books", 
    new {param1 = "value1", param2 = "value2" }); }
0 голосов
/ 31 августа 2018

Вы можете попробовать использовать

@Html.Action("Controller","Name", new { name = item.Title })
0 голосов
/ 31 августа 2018

Просто изменить

@Html.Action("ViewCategory", "Books", new {Title=item.Title})

до

 @Html.Action("ViewCategory", "Books", new {name = item.Title})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...