控制器内部有2个操作方法。
public ActionResult SelectOrders()
{
return View();
}
public ActionResult ProcessOrders(String OrderNos)
{
return View();
}
在SelectOrders View上,用户将选择订单ID,当他点击提交时,所选订单编号将显示在ProcessOrders View上。目前,我将选定的acc编号存储在Javascript数组中,并通过Query String传递给ProcessOrders视图(Window.href)。我确信这不是完成这项工作的最佳方式,因为用户可以选择超过100-200个订单。处理此功能的其他可能/最佳方式是什么。
答案 0 :(得分:0)
您想要使用的是模型。 这将是我的解决方案。
定义订单实体
public class OrderItem{
public int Id{get;set;}
public string Name{get;set;}
}
将订单收集到pub中的选择订单
public class SelectOrdersModel{
public IEnumerable<OrderItem> Orders{get;set;}
}
现在修改你的控制器:
public ActionResult SelectOrders(SelectOrdersModel model)
{
SelectOrdersModel modelToDisplay = (model==null)? new SelectOrdersModel():model;
//populate model here
return View(modelToDisplay);
}
并获取数据:
public ActionResult ProcessOrders(SelectOrdersModel model)
{
// process your model here
if(!ModelState.IsValid)返回RedirectToAction(“SelectOrders”,model); //重定向或在这里做你的逻辑 }
表单中的重定向,您将执行以下操作:
<% using( Html.BeginForm("ActionName"))
{
//your form data here
}%>