MVC2: Как я могу прочитать контрольные значения для ссылки действия? - PullRequest
1 голос
/ 08 января 2010

Я передаю некоторую информацию о модели в ActionLink, но я также хотел бы предоставить действию значения некоторых входных данных на странице. Например, если бы у меня было что-то вроде этого:

<input Name="MyInput" />

<%: Html.ActionLink("MyAction", "MyController", Model.Value);

Я бы хотел, чтобы действие знало как Model.Value (который передается через параметр), так и значение MyInput. Обычно я бы использовал FormCollection, но я не могу в этом случае, так как я не делаю отправку.

Так как я могу передать значение MyInput в MyAction? Должен ли я добавить свойство с именем MyInput к моей модели? Предполагая, что это сработает, есть ли более простой способ или, по крайней мере, один, который не предусматривает изменение модели?

Ответы [ 2 ]

3 голосов
/ 09 января 2010

Нет способа сделать это в HTML, поэтому нет способа сделать это в ASP.NET MVC.

Существует два возможных решения этой проблемы:

  1. Используйте JavaScript таким образом, чтобы при редактировании текстового поля пользователь динамически изменял значение тега привязки, чтобы включить в него то, что они ввели. Для этого нельзя использовать маршрутизацию ASP.NET, поскольку она выполняется на сервере вам нужен код на стороне клиента.

  2. Заполните форму, а не ссылку. Это рекомендуемый способ в HTML. Когда пользователь отправляет данные, они должны быть в форме. Оберните все в тег формы и поместите туда текстовое поле и кнопку. Задайте в качестве действия формы URL-адрес, по которому вы хотите публиковать его.

Это тот же ответ, который я поставил в этом вопросе , хотя на вопрос другого вопроса, возможно, была немного другая идея.

1 голос
/ 09 января 2010

Я решил, что, вероятно, мог бы прочитать значения текстового поля через Javascript (я бы, вероятно, использовал JQuery) и передать их в качестве параметров как часть анонимного типа (вместо того, чтобы просто использовать Model.Value). Однако я решил перейти от использования ссылки на действие к отправке формы и использованию FormCollection. Это стало более логичным для страницы, которую я создавал.

...