[英]I can not get the value of a textbox in my controller MVC
*你好我有很长时间尝试它,我没有得到任何结果,我的问题是下一个:在我的控制器上我不能得到文本框的值,但如果我把表单和文本框放出循环我得到了值。*
**这是我的观点:**
@for (int r = 0; r <= Model.Count-1;r++)
{
i = i + 1;
<tr>
@using (Html.BeginForm("Result","Ruta", new { ruta=Model [r].descrip ,ficha =Model [r].ficha }, FormMethod.Post))
{
if (i == 1)
{
@Html.TextBox("FechaInicio")
}
<td>
@Html.DisplayFor(modelItem => Model[r].ruta)
</td>
<td>
@Html.DisplayFor(modelItem => Model[r].descrip)
</td>
<td>
@Html.DisplayFor(modelItem => Model[r].ficha)
</td>
<td>
<input type="Submit" value="Consultar" style=" height :20px; font-size:12px; "/>
</td>
}
</tr>
我的控制器:
[HttpPost]
public ActionResult Result(string ficha, string ruta)
{
Utility.Fecha1 = Request.Form ["FechaInicio"];
if (string.IsNullOrEmpty(ficha) || string.IsNullOrEmpty(ruta) || string .IsNullOrEmpty ( Utility .Fecha1) )
{
return RedirectToAction("FichaConduces", "Ruta", new { ficha = ficha, ruta = ruta,fecha=Utility .Fecha1 });
}
else
{
return View("index");
}
}
你为什么不这么简单?
基于视图模型创建视图,并在视图中为视图模型的字段创建文本框,然后您可以轻松地从表单中获取所需的值。
而且,当你创建文本框时,它应该是@Html.TextBoxFor(....)
例如ViewModel
public class MyViewModel
{
public string MyField1{get; set;}
public string MyField2{get; set;}
}
然后在控制器的HttpGet中
[HttpGet]
public ActionResult MyControllerAction()
{
var myViewModel = new MyViewModel();
return View(myViewModel);
}
在视野中
@model MyViewModel
@using(Html.BeginForm("Action","Controller",FormMethod.Post))
{
@Html.TextBoxFor(m=>m.MyField1)
....
}
控制器的HttpPost
[HttpPost]
public ActionResult MyControllerAction(MyViewModel myViewModel)
{
//do whatever you want
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.