Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 2 没有javascript的复杂表单?_Asp.net Mvc 2 - Fatal编程技术网

Asp.net mvc 2 没有javascript的复杂表单?

Asp.net mvc 2 没有javascript的复杂表单?,asp.net-mvc-2,Asp.net Mvc 2,我正在尝试为一个web应用程序构建一个1.0版本,我想构建第一个预览版本,不包含任何javascript/ajax等,我计划稍后添加这些内容。我对有很多选择的小而复杂的表单有问题。 例如,如果是和订单表单,则用户可以在其中添加和删除产品、添加和删除服务、键入消息和检查选项,但都在单页和提交订单中。现在我的问题是在请求之间保持窗体的状态。 保持窗体viewmodel状态的最佳方法是什么?比如说,当用户向其订单添加/删除产品时 r是否每次都必须将整个viewmodel传递给控制器的AddProdcu

我正在尝试为一个web应用程序构建一个1.0版本,我想构建第一个预览版本,不包含任何javascript/ajax等,我计划稍后添加这些内容。我对有很多选择的小而复杂的表单有问题。 例如,如果是和订单表单,则用户可以在其中添加和删除产品、添加和删除服务、键入消息和检查选项,但都在单页和提交订单中。现在我的问题是在请求之间保持窗体的状态。 保持窗体viewmodel状态的最佳方法是什么?比如说,当用户向其订单添加/删除产品时 r是否每次都必须将整个viewmodel传递给控制器的AddProdcut()/RemoveProduct()方法,然后返回更新后的viewmodel?任何例子,链接和建议将不胜感激

编辑:我刚刚发现Session和TempData,它们适合这种问题吗?

WebForm

您要做的是为表单创建模型,例如: 并将信息添加到ItemsToSave集合。这将负责保存数据

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.
}
}