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();
}
}
}

最新文章

  1. Javaweb项目框架搭建-准备篇
  2. Maven_profile_使用profile配置不同环境的properties(实践)
  3. nginx+tomcat+dubbo单机部署多台dubbo应用
  4. [deviceone开发]-do_GridView的简单示例
  5. iOS Architecture Patterns
  6. SDUST作业10 Problem J: 提取缩略词
  7. ThinkPHP之中getlist方法实现数据搜索功能
  8. Android HTTPS(1)概念和简单示例
  9. HDU 2544 最短路【Bellman_Ford 】
  10. leetcode&mdash;jump game
  11. 2124: 等差子序列 - BZOJ
  12. 1015: [JSOI2008]星球大战starwar - BZOJ
  13. cookie防篡改
  14. 一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)
  15. react-dom.js 源码
  16. Angular(02)-- Angular-CLI命令
  17. 事件绑定on与hover事件
  18. 另存了一次网页之后其它word打开格式都变了
  19. Ext Js 6+ 动态切换皮肤
  20. 解析 Android Things 技术原理

热门文章

  1. Wireshark 抓包遇到 you don’t have permission to capture on that device mac 错误的解决方案
  2. swift手记-6
  3. whl 安装
  4. Android Studio报错:DefaultAndroidProject : Unsupported major.minor version 52.0
  5. 杂项:LDAP
  6. Request returned failure status 401
  7. 利用Spinnaker创建持续交付流水线
  8. [App Store Connect帮助]二、 添加、编辑和删除用户(3)添加和编辑用户
  9. [Swift通天遁地]九、拔剑吧-(15)搭建具有滑出、视差、3D变形等切换效果的引导页
  10. OI——不后悔的两年