в вашем контроллере;
[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()) {%>