Asp.net mvc 2 没有javascript的复杂表单?
我正在尝试为一个web应用程序构建一个1.0版本,我想构建第一个预览版本,不包含任何javascript/ajax等,我计划稍后添加这些内容。我对有很多选择的小而复杂的表单有问题。 例如,如果是和订单表单,则用户可以在其中添加和删除产品、添加和删除服务、键入消息和检查选项,但都在单页和提交订单中。现在我的问题是在请求之间保持窗体的状态。 保持窗体viewmodel状态的最佳方法是什么?比如说,当用户向其订单添加/删除产品时 r是否每次都必须将整个viewmodel传递给控制器的AddProdcut()/RemoveProduct()方法,然后返回更新后的viewmodel?任何例子,链接和建议将不胜感激 编辑:我刚刚发现Session和TempData,它们适合这种问题吗?WebForm 您要做的是为表单创建模型,例如: 并将信息添加到ItemsToSave集合。这将负责保存数据Asp.net mvc 2 没有javascript的复杂表单?,asp.net-mvc-2,Asp.net Mvc 2,我正在尝试为一个web应用程序构建一个1.0版本,我想构建第一个预览版本,不包含任何javascript/ajax等,我计划稍后添加这些内容。我对有很多选择的小而复杂的表单有问题。 例如,如果是和订单表单,则用户可以在其中添加和删除产品、添加和删除服务、键入消息和检查选项,但都在单页和提交订单中。现在我的问题是在请求之间保持窗体的状态。 保持窗体viewmodel状态的最佳方法是什么?比如说,当用户向其订单添加/删除产品时 r是否每次都必须将整个viewmodel传递给控制器的AddProdcu
class FormModel{
public bool Option1{get;set;}
public string DeliveryLocation{get;set;}
public IEnumerable<key,value> ItemsToSave{get;set;}
}
}我就是这样做的,但实际问题是如何在请求和页面重新加载/重定向之间保持FormModel的对象状态?假设有人将新项添加到ItemsToSave,然后再添加一个项,然后删除某个项,您如何保持FormModel对象的实例跟踪所有这些更改?
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.
}
}