При условии, что ваша форма содержит текстовое поле для ввода пользователем адреса электронной почты, и разметка для вашей формы выглядит следующим образом:
@using (Html.BeginForm("Index"))
{
<!-- pretend this field was dynamically created with javascript -->
<input id="email" type="email" name="email" />
<button type="submit">Submit</button>
}
Значение внутри текстового поля email
может бытьдоступ осуществляется с помощью свойства Form
объекта Request
:
public class HomeController : Controller
{
[HttpPost]
public ActionResult Index()
{
// Get the value of the input named `email`
var email = Request.Form["email"];
/* Do cool stuff because you can */
}
}
Или вы можете изменить метод действия, чтобы он принимал строковый параметр с тем же именем, что и входные данные:
public class HomeController : Controller
{
[HttpPost]
public ActionResult Index(string email)
{
// The default model binder will set the value of the `email` parameter to the
// value of the matching input from your form
/* Do cool stuff because you can */
}
}
Есть и другие способы, такие как принятие параметра типа FormCollection (см. этот пример ) или создание класса модели представления со строго типизированным