У меня такое чувство, что я слишком "вебформ" с этим, но я все равно спрошу. У меня есть форма в проекте ASP.NET MVC, которая имеет несколько полей ввода и две кнопки на нем. Одна кнопка используется для «фильтрации» одного из списков. Другой используется для отправки формы. Мой взгляд выглядит примерно так:
<%using (Html.BeginForm())
{%>
<%=Html.TextBox("SearchItems") %>
<input type="submit" name="Command" value="Find" />
<%=Html.ListBox("SelectedItems", new MultiSelectList(model.AvailableItems,"Id", "Name", model.SelectedItems))%>
//Some other form fields.
<input type="submit" name="Command" value="Send" />
<%} %>
Мое действие выглядит примерно так:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index([Bind(Prefix = "")]SendMessageRequest model)
{
if (model.Command == "Find")
return SearchItems(model);
if (model.Command == "Send")
return Send(model);
throw new Exception("Invalid command.");
}
Это работает - контроллер выбирает правильное действие, основываясь на нажатой кнопке. Однако это не идеально, потому что значение кнопки ввода также является отображаемым текстом. Если бы я захотел перевести это приложение, то действие оборвалось бы. Чтобы обойти это, я могу использовать элемент
Так как это для Pocket IE, я также довольно ограничен в том, что я могу сделать с JavaScript. Ajax отсутствует, но я мог бы установить скрытое поле с помощью кнопок onClick.
Итак, мой вопрос: как лучше всего разрешить одну форму с несколькими кнопками в представлении MVC? Или я должен как-то разбивать свое мнение на несколько форм?