MvcHtmlString解决MVC中从后台返回HTML代码被编码问题
- (1) 要得到的效果
<a class="easyui-linkbutton" data-options="iconCls:'icon-add'" id="dgRowAdd" plain="true">新增行</a>
- (2) 属性内编码被转换
<a class="easyui-linkbutton" data-options="iconCls:'icon-add'" id="dgRowAdd" plain="true">新增行</a>
- (3) 全部被转换
<a class="easyui-linkbutton" data-options="iconCls:&#39;icon-add&#39;" id="dgRowAdd" plain="true">新增行</a>
(2) (3)都不是我要的结果
因此我找了些资料,统和了下,最终转换的时候在最后代码输出的时候将HTML转换一下 HttpUtility.HtmlDecode
/// <summary>
/// DataGrid
/// Toolbar
/// </summary>
/// <param name="helper"></param>
/// <param name="id"></param>
/// <param name="text"></param>
/// <param name=""></param>
/// <param name="token"></param>
/// <param name="role"></param>
/// <param name="htmlAttributes"></param>
/// <returns></returns>
public static MvcHtmlString ToolbarFor(this HtmlHelper helper, string id, string text, string css, dynamic htmlAttributes)
{
var builder = new TagBuilder("a");
builder.IdAttributeDotReplacement = "-";
builder.GenerateId(id);
var dic = new RouteValueDictionary(htmlAttributes);
Dictionary<string, object> dicAttrs = new Dictionary<string, object>();
string token = string.Empty;
string role = string.Empty;
foreach (var item in dic)
{
switch (item.Key)
{
case "options":
dicAttrs.Add("data-options", item.Value);
break;
case "token":
token = Convert.ToString(item.Value);
break;
case "role":
role = Convert.ToString(item.Value);
break;
default:
dicAttrs.Add(item.Key, item.Value);
break;
}
}
if (!string.IsNullOrEmpty(token))
{
if (string.IsNullOrEmpty(role))
{
return MvcHtmlString.Create("");
}
if (MasterPermissionAuthorizeAttribute.HasRoles(token, role)==false)
{
return MvcHtmlString.Create("");
}
}
//添加属性
builder.MergeAttributes(dicAttrs); //添加样式
builder.AddCssClass(css);
builder.SetInnerText(text); //输出控件
return MvcHtmlString.Create(HttpUtility.HtmlDecode(builder.ToString(TagRenderMode.Normal)));
}
MvcHtmlString解决MVC中从后台返回HTML代码被编码问题的更多相关文章
- 二、Ajax请求MVC中数据查询表返回datatable
一.Ajax请求MVC中数据查询表返回datatable 解决方式 返回list
- 解决MVC中JSON字符长度超出限制的异常
解决MVC中JSON字符长度超出限制的异常 解决方法如下: <configuration> <system.web.extensions> <scripting> ...
- 在asp.net mvc中使用PartialView返回部分HTML段
问题链接: MVC如何实现异步调用输出HTML页面 该问题是个常见的 case, 故写篇文章用于提示新人. 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewRes ...
- ajax执行成功后,在success回调函数中把后台返回的list还原到html的table中
需求描述:前台通过onclick触发ajax,到后台返回一个list(json格式的),把list插入到html的table中. 思路简介: ̄□ ̄|| 刚开始的时候,是没有思路的,就卡在了,怎么把 a ...
- 使用Json.Net解决MVC中各种json操作
最近收集了几篇文章,用于替换MVC中各种json操作,微软mvc当然用自家的序列化,速度慢不说,还容易出问题,自定义性也太差,比如得特意解决循环引用的问题,比如datetime的序列化格式,比如性能. ...
- [转]在asp.net mvc中使用PartialView返回部分HTML段
本文转自:http://blog.csdn.net/sandy945/article/details/6307750 问题链接: MVC如何实现异步调用输出HTML页面 该问题是个常见的 case, ...
- 解决MVC中Model上的特性在EF框架刷新时清空的问题
MVC中关于前端数据的效验一般都是通过在Model中相关的类上打上特性来实现. 但是在我们数据库发生改变,EF框架需要刷新时会把我们在Model上的特性全部清除,这样的话,我们前端的验证就会失效. 因 ...
- spring mvc中,如何在 Java 代码里,获取 国际化 内容
首先,在Spring的application.xml中定义 <bean id="messageSource" class="org.springframework. ...
- 解决MVC中JsonResult返回 弹出文件下载对话框
设置一下返回类型为HTML TEXT就可以了 JsonResult json = Json(xxx, JsonRequestBehavior.DenyGet); json.ContentType = ...
随机推荐
- 2048小游戏代码解析 C语言版
2048小游戏,也算是风靡一时的益智游戏.其背后实现的逻辑比较简单,代码量不算多,而且趣味性强,适合作为有语言基础的童鞋来加强编程训练.本篇分析2048小游戏的C语言实现代码. 前言 游戏截图: 游 ...
- XML实体解析器的作用
XML实体解析器的作用 什么是实体解析器 如果一个sax解析器需要实现对外部实体的自定义处理,那么必须实现一个EntityResolver接口并且注册到SAX驱动上. 从这段文字可以看出来,实体解析器 ...
- Spring MVC的配置和使用
Spring MVC的配置和使用 笔记仓库:https://github.com/nnngu/LearningNotes Spring MVC需要的jar包 文章中 Spring MVC 使用的版本是 ...
- 机器学习实践之Logistic回归
关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2017年12月17日 19:18:31所撰写内容(http://blog.cs ...
- AI 学习新的开始
推荐入门学习 http://www.cnblogs.com/subconscious/p/6240151.html
- php+redis 学习 五 消息推送
<?php header('content-type:text/html;chaeset=utf-8'); /** * redis实战 * * 发布 * * @example php publi ...
- TinyMce 使用初探
https://www.cnblogs.com/nkxyf/p/3883586.html 参考:http://www.tinymce.com/ 官网 http://www.tinymce.com ...
- 2017第八届蓝桥杯 K倍区间
标题: k倍区间 给定一个长度为N的数列,A1, A2, - AN,如果其中一段连续的子序列Ai, Ai+1, - Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. ...
- win10安装mongodb及配置 和 mongodb的基本使用(node环境)
mongodb安装 下载地址: https://www.mongodb.com/download-center 下载后,我们点击mongodb-win32-x86_64-2008plus-ssl-3. ...
- JVM笔记1-内存溢出分析问题与解决
假设我们项目中JVM内存溢出了,大项目中上百万行代码,是很难定位的.因此我们需要借用一个Memory Analyzer工具, 官网地址为:http://www.eclipse.org/download ...