Получение значения из текстового поля asp.net mvc при нажатии - PullRequest
6 голосов
/ 31 августа 2009

Как мне получить значение текстового поля в asp.net mvc для сохранения значения в какой-либо переменной?

У меня есть текстовое поле, подобное этому <%=Html.TextBox("testbox") %> на странице просмотра индекса.

У меня есть такая кнопка <input type="submit" />

Я использую страницу просмотра по умолчанию, которая открывается при открытии нового приложения mvc.

Спасибо.

1 Ответ

8 голосов
/ 31 августа 2009

в вашем контроллере;

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(FormCollection collection)
{
  String g = collection["textFieldname"]
}

или вы можете использовать;

TryUpdateModel(modelName);

Выше приведено предпочтительное решение. Если вам нужна дополнительная информация о TryUpdateModel, тогда оставьте комментарий, и я укажу его для вас.

EDIT:

Вместо того, чтобы объяснить это, позвольте мне просто показать вам;

В вашем контроллере:

public class MyFormViewModel
{
  public string myInput {get; set;}
}

public ActionResult Search()
{
  MyFormViewModel fvm = new MyFormViewModel();
  return View(fvm);
}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(FormCollection collection)
{
  MyFormViewModel fvm = new MyFormViewModel();
  TryUpdateModel<MyFormViewModel>(fvm);

  string userInput = fvm.myInput;
}

Тогда, на ваш взгляд;

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YOURNAMESPACE.Controllers.MyFormViewModel>" %>

<%= Html.TextBox("myInput", Model.myInput) %>

Обратите внимание на две вещи.

Страница наследуется от вашей модели / класса, определенной в контроллере. Не лучшее место для этого, но в качестве примера это подойдет.

Другое дело, что имя текстового поля совпадает со свойством в модели. В этом случае myInput.

Когда контроллер выполняет UpdateModel, он отразит эту вещь и сопоставит имя текстового поля с именем поля в вашей модели представления формы.

Имеет смысл?

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

Также не забудьте обернуть кнопку и поле в;

<% using (Html.BeginForm()) {%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...