ASP.NET MVC,表单提交到某个ACTION的时候,数据不完整,如何返回上一页(需要保留上一页数据,表单中的数据。)

解决方案 »

  1.   

    把收集到的model再返回给view的,view里面每次都进行邦定的[HttpPost]
    public ActionResult Index(IndexModel model)
    {
    ....return View(model);
    }
      

  2.   

    如2楼所说,将传递过来的model再次返回即可,View页面以htmlhelper标签绑定即可
    [HttpPost]
    public ActionResult Index(IndexModel model)
    {
    if (ModelState.IsValid)
    {
    //数据处理
    return Redirect("***");
    }
    return View(model);
    }
      

  3.   

    可以使用返回上一页
    Response.Write("<script>window.history.go(-1);</script>");
    Response.End();不过这样也有弊端,如果页面上也密码框,会被置空
      

  4.   

    如果是MODEL传过来我知道。用回原来的MODEL就可以了,但是我的数据不合适做成MODEL,太多了,麻烦。
      

  5.   

    既然要“保留上一页所有状态”,那么设计上,根本不应该在页面之间“跳来跳去”地。“狗熊掰棒子式地”先扔了前面的页面,然后“又要捡起前面页面”,那么根据你的web页面设计能力,你不但捡不起前面的页面,又要扔掉当前页面了!因此明智的选择是:从头开始学前端网页javascript设计,甚至重新学习asp.net webform设计(因为它在回发处理MultiView界面时都是现成的成熟框架),不要在这种需要注重前端交互设计的web开发上去用无用处的asp.net mvc。
      

  6.   

    这对于精于前端javascript设计者,可以告诉他“提交数据应该才去ajax方式交互,而不是网页重定向”。这对于直到asp.net的multiview控件使用的设计者,则是完全是入门知识随便拖一下控件就做好了(只不过不如上边的页面“轻量”而已)。
      

  7.   

    <a href="javascript:history.back();" >返回上页</a>
      

  8.   


    前端用js收集数据,然后用ajax方法把数据post到后台,后台处理完成后返回状态,如果成功,则进行跳转,不成功显示错误信息,这样信息不会丢失。简单的ajax可如下(用jquery)
    $.ajax({
    type: "POST",
    url: "",
    data: {...}
    success: function(data) {
    }
    });
      

  9.   

    想不丢失数据,最好用Ajax提交处理,这和asp.net mvc没有关系