mvc4表单提交后控件器验证失败如何返回提交表单前的页面

问题描述

各位大侠,小弟刚学mvc4不久,请大家帮忙。问题如下:mvc4表单提交后控件器验证失败如何返回提交表单前的页面,提交表单页面有使用Ajax请求联动的下拉框,我想在提交表单后,如果控制器验证错误,还要反回页面继续修改表单。

解决方案

解决方案二:
参看引用3楼Asa_Jim的回复:

这很简单啊,举两个例子页面里面写functiondelComplement(id){ajaxpost('/AfterSales/Complement_Delete_Array',{hid_ID:id},function(){alert("删除成功");})};

对应的AfterSales控制器里面写[HttpPost]publicJsonResultComplement_Delete_Array(){varid=Request.Get("hid_ID");long[]idArr;longlid=0;........

解决方案三:
引用1楼Asa_Jim的回复:

参看Quote: 引用3楼Asa_Jim的回复:
这很简单啊,举两个例子页面里面写functiondelComplement(id){ajaxpost('/AfterSales/Complement_Delete_Array',{hid_ID:id},function(){alert("删除成功");})};

对应的AfterSales控制器里面写[HttpPost]publicJsonResultComplement_Delete_Array(){varid=Request.Get("hid_ID");long[]idArr;longlid=0;........

我要的是服务器处理。举个例子:publicActionResultCreate(){List<SelectListItem>list=newList<SelectListItem>();list.Add(newSelectListItem(){Text="Text1",Value="1"});list.Add(newSelectListItem(){Text="Text2",Value="2"});list.Add(newSelectListItem(){Text="Text3",Value="3"});ViewBag.selectList=newSelectList(list.AsEnumerable(),"Value","Text");returnView();}[HttpPost]publicActionResultCreate(Useruser){if(!ModelState.IsValid){//这个里该怎么返回,由于View还有一个SelectList要绑定,不可能又重新绑定一次吧}returnView(user);}

忽略客户端验证
解决方案四:
asp.netmvc没有自动化的状态(ViewState)维持机制,使用它本来就是要一遍遍地重新绑定的,你必须自己写一切东西。两个选择:1.使用ajax并且一切UI都通过前端处理。2.使用asp.netwebform并且一切UI数据绑定都通过服务器端处理。
解决方案五:
如果只有一个页面用redirecttoaction多个页面,用过滤器统一处理
解决方案六:
引用4楼devmiao的回复:

如果只有一个页面用redirecttoaction多个页面,用过滤器统一处理

lz其实是要保持页面上一堆已经被用户操作更新过的状态(例如下拉框的选项,或者和Grid的正在编辑的一整行内容更),而不是要跳到新的页面。
解决方案七:
asp.net之前都是为了模拟winform的用户体验,给“企业管理软件程序员”提供一个还算可行的编程工具的,因此它是事件驱动的、自动保持和自动填充ViewState机制的(例如你查询绑定了GridView之后,当页面回发时,GrudView内容会自动回填,而绝不是重新查询数据库)。可惜,asp.net在2006年左右过时了,没有跟上ajax潮流的节奏。于是微软模仿曾经被自己打败的struts来提供什么asp.netmvc。这其实就意味着整个asp.net平台基本上没有任何特别之处了(明眼人应该在几年前就看到asp.net的彻底的颓势),那么技术被淘汰之后,剩下的就是跟php、jsp等等拼宣传、拼社区、拼开源、拼忽悠能力了。
解决方案八:
引用5楼sp1234的回复:

Quote: 引用4楼devmiao的回复:
如果只有一个页面用redirecttoaction多个页面,用过滤器统一处理

lz其实是要保持页面上一堆已经被用户操作更新过的状态(例如下拉框的选项,或者和Grid的正在编辑的一整行内容更),而不是要跳到新的页面。

那很简单UpdateModel(model);renturnView(model);

时间: 2024-12-31 02:35:47

mvc4表单提交后控件器验证失败如何返回提交表单前的页面的相关文章

全编辑WebGrid控件LrcGrid(4)—— 脚本库和样式表

web|脚本|控件|样式表 全编辑WebGrid控件LrcGrid(4)-- 脚本库和样式表 脚本库:包含了控件客户端操作的函数.包括: 将表格行切换到编辑模式的函数:chgEditRow(rowIndex,tab)() 将表格列切换到编辑模式的函数:chgEdit(colIndex,tab) 在客户端构造更新数据库的sql语句: BuildSql(tabName) 添加新记录的函数:AddRow(tab) 移除新添加行的函数: RemoveRow(tab)全部js代码: function ch

asp-ASP.ascx 控件发布后,修改覆盖后 控件报错

问题描述 ASP.ascx 控件发布后,修改覆盖后 控件报错 ASP.net 的网站,我很多个页面引用了ascx格式的控件,并在后台 有与界面进行交互,发布完成,可以使用,但是根据需求更改了一个,有引用的界面发布之后,把界面覆盖了,并且把对应的DLL 也放到BIN里了 但是 报错找不到依赖,其他有引用的页面正常

看实例学VFP:编程方式向表单添加新控件

vfp的"表单控件工具栏"包含了标签(Label).文本框(TextBox)等常用的控件类,以前我们向表单添加控件时多数都是在设计时使用该工具栏. 单击该工具栏上的某个控件图标后,即可在表单上拖动.绘制出所需要的控件.但有时我们需要的控件有可能在设计时无法确定,而是在应用程序运行时根据具体情况动态创建的,这时就需要以编程的方式,通过使用addobject()函数或creatobject()函数动态地向表单添加新控件. 本例在命令按钮的click事件代码中,使用系统基类grid动态创建出

VS2013加载DorNetBar后控件图标不显示

问题描述 VS2013加载DorNetBar后控件图标不显示,如下图所示:求大神解决! 解决方案 解决方案二:你的这些是第三方控件吧?开发的时候有没有设置这些图标还不知道呢,而且单从使用来说,没有图标是不影响的.

怎样灵活的把textbox和combox控件中数据插入到数据库的表中

问题描述 有一个输入窗体,里面有很多textbox和combox控件,当用户在里面输入数据后(有的控件内容是根据前面的内容计算的),怎样灵活的把控件中数据插入到数据库的表中.因为用Insert命令,控件太多.不知还有什么其他方便的方法?请各位高手赐教.谢谢. 解决方案 解决方案二:使用textbox数组,用循环插入到数据库.解决方案三:可否给出具体实例?重点是数组合怎样插入到数据库的表中?解决方案四:可以用datagridview吧,把它与数据库关联解决方案五:我的环境是.net2003+sql

我想在一个窗体上设计一张产成品入库单,需要哪些控件,我是个初学者,请多多指教啊.非常感谢.

问题描述 我想在一个窗体上设计一张产成品入库单,需要哪些控件,我是个初学者,请多多指教啊.非常感谢. 解决方案 解决方案二:datagriadview以及相关的button对表进行更新操作解决方案三:在窗口设计中,从工具栏中,选择DataGridView控件,然后设计它的DataSource为你想要的数据源就可以了.解决方案四:严格按照需求的要求来,需求中需要什么就使用什么,比如说固定选择的,使用combobox,时间日期的,使用dtpicker,输入的使用textbox,而表格,不是太建议使用

ext net-VS中安装ext.net后控件无法正确显示,浏览器中查看正常

问题描述 VS中安装ext.net后控件无法正确显示,浏览器中查看正常 设计界面中EXT控件显示 please configure in source view

winform-textbox输入0后控件消失问题

问题描述 textbox输入0后控件消失问题 c#winform中,textbox控件动态绑定在一个datagridview控件上,在textbox中输入其它字符都正常,但是一旦输入数字0,控件立刻消失,请问这个问题怎么解决? #region - 单元格点击触发事件 - private void mDGV_CellClick(object sender, DataGridViewCellEventArgs e) { if(e.RowIndex3) return; Rectangle rect =

ado net-利用数据绑定控件修改多个数据库中的表

问题描述 利用数据绑定控件修改多个数据库中的表 利用Datagridview显示来自SQL SERVER数据库中的多个表,然后在绑定控件上修改,并将修改保存到数据库中的相应表,麻烦详细一点