.NET MVC 模型过滤解决方法
来源:互联网 发布:移动数据不能看h小说 编辑:程序博客网 时间:2024/05/16 11:15
在写毕业设计过程中遇到了一个问题,关于模型过滤问题。
这个是默认的过滤方法,他会在进入方法前进行模型验证,如果验证失败会返回原页面,但是在返回原页面之后,会导致原页面的model,ViewBag为null,直接报错。
public class ValidateModelStateAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { if (!filterContext.Controller.ViewData.ModelState.IsValid) { filterContext.Result = new ViewResult { ViewData = filterContext.Controller.ViewData, TempData = filterContext.Controller.TempData }; } base.OnActionExecuting(filterContext); } }原因是这个过滤方法的Result里只包含了错误信息,而没有包含原来的页面数据。
这个过滤方法是模版原有的,改动的话,会导致其他地方报错。
所以只能在控制器的方法里面改动。
这个是改动之前的方法代码。
<span style="white-space:pre"></span>/// <summary> /// 修改-任务总概 /// </summary> /// <param name="title"></param> /// <returns></returns> [HttpPost] [ValidateModelState] public ActionResult Edit(T_TaskTitle title) { var model = _manageService.GetTaskTitleById(title.Id); model.PlanTime = Convert.ToDateTime(title.VPlanTime); model.VPlanTime = title.VPlanTime; model.AttributeId = title.AttributeId; model.Remark = title.Remark; _manageService.CreateOrEditTaskTitle(model); //关闭模态窗 return Content("<script> parent.location.reload(1);</script>"); }
这个是改动之后的方法代码,完美解决了这个问题。
<span style="white-space:pre"></span>/// <summary> /// 修改-任务总概 /// </summary> /// <param name="collection"></param> /// <returns></returns> [HttpPost] public ActionResult Edit(FormCollection collection) { T_TaskTitle title = new T_TaskTitle(); if (!TryUpdateModel(title)) { var attributeid = _manageService.GetTaskTitleById(title.Id).AttributeId; ViewBag.TypeId = _manageService.GetAttributeById(attributeid).TypeId; return View("Edit"); } var model = _manageService.GetTaskTitleById(title.Id); model.PlanTime = Convert.ToDateTime(title.VPlanTime); model.VPlanTime = title.VPlanTime; model.AttributeId = title.AttributeId; model.Remark = title.Remark; _manageService.CreateOrEditTaskTitle(model); //关闭模态窗 return Content("<script> parent.location.reload(1);</script>"); }
最关键的方法是,TryUpdateModel(),这个方法能将提交的数据更新到实体类中,自动验证字段是否有效,从而保证提交的数据的有效性。
以上。
0 0
- .NET MVC 模型过滤解决方法
- ASP.NET MVC - 模型
- 【ASP.NET MVC】模型
- ASP.NET MVC 对象模型
- ASP.Net MVC 模型绑定
- ASP.NET MVC模型绑定
- ASP.NET MVC – 模型
- ASP.NET MVC 2 模型验证
- 理解ASP.NET MVC中的模型绑定
- ASP.NET MVC 5 - 添加一个模型
- ASP.NET MVC 4 (九) 模型绑定
- ASP.NET MVC 4 (十) 模型验证
- ASP.NET MVC 5 - 添加一个模型
- Asp.Net MVC entity framework模型验证
- Asp.net Mvc 中的模型绑定
- Asp.net Mvc 中的模型绑定
- ASP.NET MVC 视图与模型绑定
- ASP.NET MVC模型部分验证
- 看postgre源码看的好烦,记录一下吧
- Jenkins常用插件之Deploy Plugin
- 第八周实践项目1————数组做数据成员(2)
- 第八周项目3-指向学生类的指针
- JS基础回顾(二)--数组
- .NET MVC 模型过滤解决方法
- 【1】Docker---Windows系统上安装Boot2Docker以及安装的一些问题
- JS正则表达式——学习笔记
- ATM机
- Android开发:5分钟解析Activity&Fragment生命周期
- MATLAB神经网络学习手札(1)
- HDU5667 Sequence
- 数据源配置解决数据库存读取中文乱码问题
- UUID