Как передать данные из представления в контроллер - PullRequest
0 голосов
/ 26 октября 2011

В моем View у меня есть таблица, в которую заносятся различные данные. Первоначально в ней отображаются только строки, доступные для этого пользователя. Однако есть также возможность показать все строки. Чтобы достичь этого, у меня есть две гиперссылки над таблицей с hrefs «? IsRequiredAction = true» и «? IsRequiredAction = false». В контроллере у меня есть следующее:

public ActionResult Index(bool? isRequiredAction){
string userId = User.Identity.Name;
bool ira = true;
if (isRequiredAction != null)
{
    ira = Convert.ToBoolean(isRequiredAction);
}
...
return View(model);

Итак, сейчас Контроллер получает свой параметр из строки запроса, созданной путем нажатия на эти ссылки. Я не удовлетворен этим подходом, так как я не хочу портить URL этим запросом. Есть ли более простой способ добиться того, что я спрашиваю? Мы хотели бы избежать превращения ссылок в объекты формы, если это возможно. Спасибо.

Ответы [ 3 ]

3 голосов
/ 26 октября 2011

Эта статья MSDN должна помочь.

От вида к контроллеру вы можете сделать HttpPost или передать данные в качестве параметров.

0 голосов
/ 26 октября 2011

Технически, я не верю, что есть очень подходящее решение, которое соответствует вашим потребностям, потому что вы не хотите создавать объект формы ссылки или «портить» URL.Я предлагаю вам придерживаться вашего первого подхода, потому что нет ничего плохого в загрязнении URL.«Загрязнив» свой URL, вы можете сделать ссылку закладкой.Если вы действительно обеспокоены этим, то у вас есть два варианта:

(1) Использовать Ajax.Таким образом, ваш URL не будет затронут;однако вы теряете закладку.

(2) Используйте перезапись URL, чтобы сделать ваш URL "красивым".Этот подход, скрытый под капотом, равносилен «загрязнению» URL, но «довольно».

0 голосов
/ 26 октября 2011

Вы можете создать два отдельных пользовательских маршрута , например:

  1. www.yourapp.com / дом
  2. www.yourapp.com / дом / SHOWALL

После этого вы можете настроить оба маршрута на одно и то же действие или создать отдельное действие для каждого из этих маршрутов. Ваш выбор!

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