使用BeginForm()将对象传递给控制器
本文关键字:控制器 对象 BeginForm 使用 | 更新日期: 2023-09-27 18:11:52
我有一个强类型视图,我试图通过一个文本框的输入在一个按钮点击使用BeginForm的操作。我的代码一直传递一个空对象到控制器中的动作方法。如何通过表单将对象传递给控制器?
@using (@Html.BeginForm("GetQueueInfoWorkorder","Home", FormMethod.Post, new { id = Model}))
{
@Html.TextBoxFor(x=> x.ID);
<input type="Submit" value ="Search" class="ui-button-icon-secondary"/>
}
下面是actionmethod:
[HttpPost]
public ActionResult GetQueueInfoWorkorder(UserResponse id)
{
//Check queue complete
int woNumber = Convert.ToInt32(id);
tb_QueueCompleted completed = db.tb_QueueCompleted.SingleOrDefault(x => x.WorkOrderNumber == woNumber);
if (completed != null)
{
var u = new UserResponse { ID = completed.QueueId.ToString() };
GetLogInfoCompleted(u);
return View("GetLogInfo");
}
//check queue pending
return View();
}
我认为你已经很接近了,但是做这些改变&它应该按预期工作:
模型:
public class UserResponse
{
public int ID { get; set; }
}
视图:
@model UserResponse
@using (Html.BeginForm("GetQueueInfoWorkorder", "Home"))
{
@Html.TextBoxFor(x => x.ID);
<input type="Submit" value ="Search" class="ui-button-icon-secondary"/>
}
操作方法:
public ActionResult GetQueueInfoWorkorder(UserResponse model)
{
int woNumber = model.ID;
//...
}
如果视图的@model是UserResponse,那么在提交该页时,模型(UserResponse)将自动提交给控制器。你在哪里为视图声明了@model