我正在尝试从视图的文本框中获取值。
这是我的观点:
@model MyDataIndexViewModel
@{
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<h1>Meine Daten</h1>
</div>
</div>
var item = Model.User;
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-6 myDataTitle">Email</div>
<div class="col-xs-6 col-sm-6 col-md-6">
@Html.TextBox("txtEmail", "", new { placeholder = item.Email})
</div>
</div>
}
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<a class="btn btn-default pull-right" href="/ChangeMyData/Save">Speichern</a>
</div>
</div>
这是我的控制器:
[HttpPost]
public ActionResult Save()
{
var email = Request["txtEmail"].ToString();
return View();
}
正如标题中所说的那样,我收到错误。提前谢谢你!
查看:
@model MyDataIndexViewModel
@using (Html.BeginForm("Save", "CONTROLLER_NAME"))
{
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<h1>Meine Daten</h1>
</div>
</div>
var item = Model.User;
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-6 myDataTitle">Email</div>
<div class="col-xs-6 col-sm-6 col-md-6">
@Html.TextBox("txtEmail", "", new { placeholder = item.Email, id="txtEmail"})
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12">
<a class="submit btn btn-default pull-right">Speichern</a>
</div>
</div>
}
控制器
[HttpPost]
public ActionResult Save()
{
var email = Request.Form["txtEmail"].ToString();
return View();
}
可以使用强类型的视图模型绑定:
视图
@model MyDataIndexViewModel
@* other stuff *@
@Html.TextBox("txtEmail", Model.Email)
控制器
[HttpPost]
public ActionResult Save(MyDataIndexViewModel model)
{
var email = model.Email;
return View();
}
或者直接使用 TextBoxFor
进行模型绑定:
@model MyDataIndexViewModel
@* other stuff *@
@Html.TextBoxFor(model => model.Email)
或者,如果您仍想使用 HttpRequest
成员,可以使用Request.Form
集合(NameValueCollection
)从txtEmail
输入中检索文本:
[HttpPost]
public ActionResult Save()
{
var email = Request.Form["txtEmail"].ToString();
return View();
}
请注意,不鼓励使用Request["txtEmail"]
,因为没有应用编译时安全性,因为键值可以从Request.QueryString
、Request.Form
或其他HttpRequestBase
成员中检索。
类似问题:
指定名称的 MVC 文本框未在发布时绑定模型
使用 MVC 中的请求将表单数据访问到控制器 ASP.NET