将数据发布到操作方法MVC2.0

时间:2011-08-26 05:43:46

标签: asp.net-mvc asp.net-mvc-2

控制器内部有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个订单。处理此功能的其他可能/最佳方式是什么。

1 个答案:

答案 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
   }%>