в aspx:
<%Html.BeginForm("Hello","Home",FormMethod.Post);%> <!--Name of method, name of controller, formmethod -->
<input type="text" id="userName" maxlength="50" name="userName"/>
<input id="Submit1" type="submit" value="Say Hello!" />
<%Html.EndForm();%>
<h2><%= Html.Encode(TempData["Message"]) %></h2>
В контроллере (в данном примере HomeController):
public ViewResult Hello(string userName) //note this variable is exactly what is the name of text input on page
{
//simple example, take input and pass back out
TempData["Message"] = "Hello, " + userName;
return View("Index",TempData);
}
РЕДАКТИРОВАТЬ: для ответа на дополнительный вопрос об обслуживании URL
Один из методов, позволяющих «оставаться на месте», пока ваш URL-адрес, состоит в «перегрузке» метода Index вашего контроллера, как показано ниже
[AcceptVerbs(HttpVerbs.Post)] //This is KEY <-----
public ActionResult Index(string userName)
{
//simple example, take input and pass back out
TempData["Message"] = "Hello, " + userName;
return View("Index",TempData);
}
Затем вваш Index.aspx меняет форму Html.Begin, как показано ниже, теперь вы просто указываете на действие по умолчанию
<%Html.BeginForm("Index","Home",FormMethod.Post);%>
Поскольку вы отправляете на контроллер и не получаете (действие по умолчанию для индекса) версию, которая являетсянастройте AcceptVerb POST и примите строку userName, и ваш URL должен быть сохранен