Вопрос по asp.net-mvc-3 – Как передать значения из представления в контроллер в ASP.NET MVC 3 (Razor)?

0

У меня есть эта таблица в базе данных:

http://i.stack.imgur.com/C7CWX.png

И я отображаю все значения в «музыке» без повторов по этому коду (Просмотр):

@foreach (var item in Model.Select(m => m.music).Distinct())
{
    <tr>
        <td>
            @Html.ActionLink(item, "Deep", ViewData["item"])
        </td>
    </tr>
}

Результат:

Jazz
Disko
Rock
Metal

И я хочу, чтобы я нажимал «Джаз». результат был «Майлз», «Кирк»; и т.п. Как это сделать? Я думаю, что могу передать значение из View в Controller, но я не знаю, как это сделать в моей ситуации. пожалуйста, помогите мне

Действие в контроллере (например):

    public ActionResult Deep(string music)
    {

        var res = (from m in d.table where m.music == music select m);
        return View(res);
    }

Ваш Ответ

2   ответа
0

огда пользователь запрашивает ваш веб-сервер, веб-сервер начальной страницы (ASP.NET) выясняет, какое действие нужно вызвать. Это действие собирает данные и отправляет эти данные (используя модели представления, ViewBag, ViewData или TempData) в представление для визуализации. В данном случае рендеринг - это процесс, в котором ваши данные преобразуются в HTML (может быть что угодно, в действительности CSS, JavaScript, ... посмотрите на это как массив байтов), который отправляется клиенту (браузеру), который интерпретирует их как веб-страницу. Пользователь видит вашу ссылку, и когда он нажимает на нее, он отправляет новый запрос на веб-сервер, и этот процесс повторяется.

Вы создаете код для ссылок с: @ Html.ActionLink (item, & quot; Deep & quot ;, ViewData [& quot; item & quot;])

Первым параметром является текст ссылки. & Quot; Глубокий & Quot; Имя действия, которое нужно вызвать на текущем контроллере Третий параметр имеет тип объекта. Этот третий параметр должен быть того же типа, что и параметры в действии Deep, и вы должны использовать следующую нотацию для передачи данных

@ Html.ActionLink (item, & quot; Deep ", new {idItem = item.IdMusic, foo =" bar & quot;})

В предыдущем примере ASP MVC ожидает, что ваш & quot; Deep & quot; действие имеет параметры idItem и foo.

Стоит отметить, что клиент / пользователь делает запрос на веб-сервер, он не может отправить объект, как вы пытались. Вместо этого вы отправляете уникальный идентификатор (idMusic) объекта и извлекаете его по запросу из базы данных / кэша / сессии.

Надеюсь это поможет, Златибор

Error: User Rate Limit Exceeded user
0

что вы хотите. Если вы наводите курсор на сгенерированные ссылки, я думаю, что каждый из них назовет свой контроллер!

http://msdn.microsoft.com/en-us/library/dd505070.aspx

вместо этого посмотрите на эту версию

http://msdn.microsoft.com/en-us/library/dd493066.aspx

@Html.ActionLink(item, "Deep", "YourController", new {id= ViewData["item"]})

и действие контроллера, как

public ActionResult Deep(int id)
{
  //Do something
}
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded user
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded user

Похожие вопросы