【发布时间】:2009-12-03 19:04:30
【问题描述】:
我正在使用一个模型,该模型需要流经一系列控制器和视图,并在此过程中对其进行操作(仅将其加载到第一个控制器上)。有没有办法将模型从视图中持久化回控制器等等?
这是我的代码。
型号:
public class ROWModel
{
#region Properties
//Request
public List<TBLRETURNABLEITEMS> TBLRETURNABLEITEMS { get; set; }
//public List<ReturnReasons> ReturnReasons { get; set; }
public int Order_No { get; set; }
public string First_Name {get; set; }
public string Last_Name {get; set; }
public string Company { get; set; }
public string Address_1 { get; set; }
public string Address_2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Postal_Code { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string CustomerCode {get; set; }
public string TerritoryCode {get; set; }
//Post
#endregion
#region Constructor
public ROWModel()
{ }
#endregion
}
public class ReturnableItems : IComparable<ReturnableItems>
{
private int _id;
private decimal _ordered;
private decimal _shipped;
public int Id
{
get { return _id; }
set { _id = value; }
}
public decimal Ordered
{
get { return _ordered; }
set { _ordered = value; }
}
public decimal Shipped
{
get { return _shipped; }
set { _shipped = value; }
}
}
在填充模型并将其发送到视图后,一切都将使用模型显示。我认为将模型像这样粘贴在表单标签上:
<% using (Html.BeginForm("Items", "ROW", Model))
这是 ROW 控制器的 post Items Action:
[ActionName("Items"), AcceptVerbs(HttpVerbs.Post)]
public ActionResult Items(ROWModel model, FormCollection collection)
问题是模型不返回我最初填充的 TBLRETURNABLEITEMS 列表。它保留了我填充的其他属性,但不保留列表。我如何维护这个模型的数据,而不必在每个控制器上重新加载它。
【问题讨论】:
-
你不能只添加视图模型类型作为 Action 方法的参数吗?公共 ActionResult ActionOnSecondController(MyViewModel 模型) {...}
-
我想我可以,但我没有得到任何 List
项目。这可能是因为我使用部分类来显示 List 项目吗?我不这么认为,因为视图和部分都继承自模型。
标签: asp.net-mvc model-view-controller