Как можно, чтобы каждая кнопка / ссылка на странице выполняла свое собственное действие в приложении ASP.NET MVC 2? - PullRequest
1 голос
/ 01 ноября 2011

Я использую ASP.NET MVC 2 с C #. В соответствии с требованиями для приложения, которое я разработал, каждое представление имеет несколько кнопок, которые выполняют одно и то же действие Controller Post. В настоящее время, чтобы узнать, какая кнопка была нажата при публикации действия, я использую скрытое поле в форме, называемое PageAction. Это поле устанавливается со значением при нажатии любой кнопки. Это вызвало изрядное количество проблем в реализации контроллера действия POST для этого представления, потому что я должен сделать оператор case для значения, переданного через PageAction. Это одна из тех вещей, которые, кажется, можно сделать лучше и проще.

Есть ли способ иметь несколько действий для одного представления? Таким образом, каждая кнопка будет отправлять форму своему собственному действию контроллера (однако все они будут соответствовать одному и тому же представлению). Я хотел бы уйти от проверки «волшебной строки» на значение PageAction; однако все эти кнопки являются частью одной HTML-формы, поэтому я не уверен, как это возможно, кроме разделения каждой кнопки на ее собственную форму или динамического изменения каждой кнопки в месте отправки формы. Оба последних варианта кажутся более сложными, чем то, что я уже делаю.

Все предложения / комментарии приветствуются. Спасибо!

РЕДАКТИРОВАТЬ 1

Я просмотрел сообщение в блоге, связанное здесь: http://blog.ashmind.com/2010/03/15/multiple-submit-buttons-with-asp-net-mvc-final-solution/, и повторил функциональность, но мне было интересно ... как это будет работать, если названия кнопок на странице стандартизированы для нескольких разных страниц в приложение? Кажется, что в сообщении блога используются разные имена кнопок, совпадающие с именем действия в контроллере, но в моем случае это не будет достаточно уникальным.

Ответы [ 2 ]

2 голосов
/ 01 ноября 2011

Вы можете найти следующую запись в блоге полезной, которая иллюстрирует использование пользовательского ActionNameSelectorAttribute .

0 голосов
/ 01 ноября 2011

Возможно, вам следует рассматривать их как вызовы AJAX вместо сообщений в форме? Это то, что делает большинство людей, если они хотят выполнять различные действия на одной странице.

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