我正在尝试为Web应用程序构建1.0版本,我想构建第一个没有任何javascript / ajax等的预览版本,我打算稍后添加。我遇到了一些有很多选项的复杂形式的问题。 例如,如果是和订单表单,用户可以添加和删除产品,添加和删除服务,键入消息和检查选项,但所有在单页和提交订单。现在我的问题是在请求之间保持表单的状态。 保持表单视图模型状态的最佳方法是什么?让我们说当用户添加/删除产品到他们的orde时 我是否必须每次都将整个viewmodel传递给控制器的AddProdcut()/ RemoveProduct()方法,然后返回更新后的viewmodel?任何示例,链接和建议将不胜感激。
编辑:我刚刚发现了Session和TempData,这些问题是否合适?
答案 0 :(得分:1)
web窗体
你要做的是为表单创建模型,例如: 并将信息添加到ItemsToSave集合中。这将负责保存数据。
class FormModel{
public bool Option1{get;set;}
public string DeliveryLocation{get;set;}
public IEnumerable<key,value> ItemsToSave{get;set;}
}
后 在控制器中你可以这样做
public partial FormController : controller.. {
//this part create blank view
[HttpPost]
public ActionResult StartForm(){
return View( new FormModel());
}
[HttpGet]
public ActionResult StartForm(FormModel model){
if (!ModelState.IsValid) return model;
//and here do your saving logic.
}
}
}