MVCHelper 请求检验
public class MVCHelper
{
//有 两 个ModelStateDictionary类,别弄混乱了要使用 System.Web.Mvc 下的
//如果添加引用中找不到System.Web.MVC,那么可以用nuget安装:
//Install-Package Microsoft.AspNet.Mvc
public static string GetValidMsg(System.Web.Mvc.ModelStateDictionary modelState)
{
StringBuilder sb = new StringBuilder();
foreach (var key in modelState.Keys)
{
if (modelState[key].Errors.Count <= )
continue; sb.AppendFormat(" 属性【{0}】错误:", key);
foreach (var modelError in modelState[key].Errors)
{
sb.AppendLine(modelError.ErrorMessage);
}
}
return sb.ToString();
} public static string RemoveQueryString(NameValueCollection nvc, string name)
{
NameValueCollection newNvc = new NameValueCollection(nvc);
newNvc.Remove(name);
return ToQueryString(newNvc);
} public static string UpdateQueryString(NameValueCollection nvc, string name, string value)
{
NameValueCollection newNvc = new NameValueCollection(nvc);
if (newNvc.AllKeys.Contains(name))
newNvc[name] = value;
else
newNvc.Add(name, value); return ToQueryString(newNvc);
} private static string ToQueryString(NameValueCollection newNvc)
{
StringBuilder sb = new StringBuilder();
foreach (var key in newNvc.AllKeys)
{
string value = newNvc[key];
//EscapeDataString就是对特殊字符进行uri编码
sb.AppendFormat("{0}={1}&", key, Uri.EscapeDataString(value));
}
return sb.ToString().Trim('&');//去掉最后一个多余的&
} //生成XXX的静态html页面的 方法
public static string RenderViewToString(ControllerContext context, string viewPath, object model = null)
{
ViewEngineResult viewEngineResult = ViewEngines.Engines.FindView(context, viewPath, null);
if (viewEngineResult == null)
throw new FileNotFoundException("View" + viewPath + "cannot be found."); var view = viewEngineResult.View;
context.Controller.ViewData.Model = model;
using (var sw = new StringWriter())
{
var ctx = new ViewContext(context, view, context.Controller.ViewData, context.Controller.TempData, sw);
view.Render(ctx, sw);
return sw.ToString();
}
}
}
MVCHelper 请求检验的更多相关文章
- 实现跨浏览器html5表单验证
div:nth-of-type(odd){ float: left; clear: left; } .origin-effect > div:nth-of-type(even){ float: ...
- jQuery实现无限加载瀑布流特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 用Visio画UML顺序图
1.顺序图 顺序图又称为时序图,顾名思义,它着重表现的是对象间消息传递的时间顺序.顺序图描述的对象也是一个用例,即一组行为操作,而它表现的是这组行为的先后关系(纵坐标),以及每个行为是属于哪个对象的( ...
- SSM框架中前端页面(AJAX+Jquery+spring mvc+bootstrap)
前端新增页面的模态框,采用bootstarp建立.定义了empName,email,gender,depatName,四个属性的ID:其中保存按钮的ID:emp_save_btn,对应的点击函数如下: ...
- Python框架学习之Flask中的视图及路由
在前面一讲中我们学习如何创建一个简单的Flask项目,并做了一些简单的分析.接下来在这一节中就主要来讲讲Flask中最核心的内容之一:Werkzeug工具箱.Werkzeug是一个遵循WSGI协议的P ...
- 使用Ajax验证用户是否已存在
在服务器端使用Servlet,里面在集合里存了几个字符串,没有对数据库操作. 前台input页面和Ajax验证: <%@ page language="java" conte ...
- 2018.6.27 Ajax实现异步刷新
Servlet获取URL地址.在HttpServletRequest类里,有以下六个取URL的函数: getContextPath 取得项目名 getServletPath 取得Servlet名 ge ...
- django内置缓存
由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...
- (十三)JSON的使用(下)
(接上一章节) 4.2 使用ajax交互方式 使用ajax的转换思想 A:异步请求在页面中发起,也要在页面中接收数据并展现. B:ajax中的数据不能从作用域中获取,只能从respons ...
随机推荐
- Wireshark网络分析实战笔记(一)抓包过滤器
抓包过滤器和显示过滤器的差别: 1.抓包过滤器配置在抓包之前,wireshark仅仅抓取抓包过滤器过滤的数据 2.显示过滤器配置在抓包后,wireshark已经抓取全部的数据包,显示过滤器让wires ...
- String的'+'的性能及原理
逛了几个论坛. 不少人在讨论String的"+",StringBuilder与StringBuffer等一系列的问题.先不多说了了 现分类详述: 1.String的'+',底层运行 ...
- Js通用验证
//-----------------------------------------------------js 验证封装 zhy2014-07-10------------------------ ...
- Mahout--(一)数据承载
mahout API英文解释:https://builds.apache.org/job/Mahout-Quality/javadoc/ 推荐数据的处理是大规模的,在集群环境下一次要处理的数据可能是数 ...
- Project Perfect让Swift在server端跑起来-引言(一)
编者语:今天是大年初一.先和大家简单说一句猴年快乐! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/ ...
- ECMAScript 对象类型
ECMAScript:本地对象.内置对象.宿主对象 一.本地对象: 定义:ECMA-262(ECMAScript语言规范) 定义其为“独立于宿主环境的 ECMAScript 实现提供的对象”.它是由 ...
- FileZilla文件下载的目录
连接上ftp服务器之后,在remote site那边邮件选中了目录下载文件,但是下载完成之后. 不知道下载到哪里了,用search everything软件搜了一下,发现就在D盘的根目录. 所以,下载 ...
- codeforces 949B A Leapfrog in the Array
B. A Leapfrog in the Array time limit per test 2 seconds memory limit per test 512 megabytes input s ...
- MSP430:管脚的第二功能选择
之前在使用PWM,AD时候用到过第二功能,不过都是copy没有注意过PXSEL究竟怎么设置,今天在设置晶振管脚时候遇到了麻烦,细致看了一下其实很简单,在SPEC的最后详细讲了每个管脚如何设置为其他功能 ...
- vue中时间控件绑定多个输入框
首先去下载laydate时间控件,引入到相应的模板中 <input type="text" val-required="" value="&qu ...