• (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)  全部被转换

&lt;a class=&quot;easyui-linkbutton&quot; data-options=&quot;iconCls:&amp;#39;icon-add&amp;#39;&quot; id=&quot;dgRowAdd&quot; plain=&quot;true&quot;&gt;新增行&lt;/a&gt;

(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代码被编码问题的更多相关文章

  1. 二、Ajax请求MVC中数据查询表返回datatable

    一.Ajax请求MVC中数据查询表返回datatable 解决方式 返回list

  2. 解决MVC中JSON字符长度超出限制的异常

    解决MVC中JSON字符长度超出限制的异常 解决方法如下: <configuration> <system.web.extensions> <scripting> ...

  3. 在asp.net mvc中使用PartialView返回部分HTML段

    问题链接: MVC如何实现异步调用输出HTML页面 该问题是个常见的 case, 故写篇文章用于提示新人. 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewRes ...

  4. ajax执行成功后,在success回调函数中把后台返回的list还原到html的table中

    需求描述:前台通过onclick触发ajax,到后台返回一个list(json格式的),把list插入到html的table中. 思路简介: ̄□ ̄|| 刚开始的时候,是没有思路的,就卡在了,怎么把 a ...

  5. 使用Json.Net解决MVC中各种json操作

    最近收集了几篇文章,用于替换MVC中各种json操作,微软mvc当然用自家的序列化,速度慢不说,还容易出问题,自定义性也太差,比如得特意解决循环引用的问题,比如datetime的序列化格式,比如性能. ...

  6. [转]在asp.net mvc中使用PartialView返回部分HTML段

    本文转自:http://blog.csdn.net/sandy945/article/details/6307750 问题链接: MVC如何实现异步调用输出HTML页面 该问题是个常见的 case, ...

  7. 解决MVC中Model上的特性在EF框架刷新时清空的问题

    MVC中关于前端数据的效验一般都是通过在Model中相关的类上打上特性来实现. 但是在我们数据库发生改变,EF框架需要刷新时会把我们在Model上的特性全部清除,这样的话,我们前端的验证就会失效. 因 ...

  8. spring mvc中,如何在 Java 代码里,获取 国际化 内容

    首先,在Spring的application.xml中定义 <bean id="messageSource" class="org.springframework. ...

  9. 解决MVC中JsonResult返回 弹出文件下载对话框

    设置一下返回类型为HTML TEXT就可以了 JsonResult json = Json(xxx, JsonRequestBehavior.DenyGet); json.ContentType = ...

随机推荐

  1. React ref回调函数例子

    ref属性也可以是一个回调函数而不是一个名字.   这个函数将要在组件被挂载之后立即执行. 这个参照的组件将会作为该函数的参数,这个函数可以立即使用这个组件参数,当然也可以将其保存供以后使用. 当这个 ...

  2. Xcode的SVN提示"The request timed out."的解决方案

    问题描述 在利用Xcode的SourceControl进行SVN代码检出时,确认输入地址.帐号密码都正确的情况下,总是提示"The request timed out.".该问题的 ...

  3. 孤立的SQL用户

    问题 最近公司很多数据库在上云,也有一部分在下云.这期间出现了很多问题,其中一个比较恶心的问题就是"孤立用户".当数据库备份还原以后用以前的用户发现不能登录.一开始以为是登录账号没 ...

  4. .NET Core使用swagger进行API接口文档管理

    一.问题背景 随着技术的发展,现在的开发模式已经更多的转向了前后端分离的模式,在前后端开发的过程中,联系的方式也变成了API接口,但是目前项目中对于API的管理很多时候还是通过手工编写文档,每次的需求 ...

  5. coredump故障分析

    如果一个程序运行3天后才会出错,这个时候 难道需要我们一直用GDB调试程序3天吗? 这个时候我们就需要使用到core  dump: 1.Core Dump又叫核心转存.当程序在运行过程中发生异常, 这 ...

  6. 本地创建yum源并安装lnmp

    注意:安装系统时,文件类型要未xfs类型,root要分配最多的空间 1.挂载安装光盘mount -t iso9660 -o loop CentOS-7-x86_64-DVD-1511.iso /mnt ...

  7. Netty基础点滴

    编写一个应答服务器 编写一个应答服务器 写一个Netty服务器主要由两部分组成: 配置服务器功能,如线程.端口 实现服务器处理程序,它包含业务逻辑,决定当有一个请求连接或接收数据时该做什么 启动服务器 ...

  8. ansible实践3-playbook条件判断

    --- - hosts: testhost   user: root   gather_facts: True   tasks:     - name: use when       shell: t ...

  9. sqlite不存在记录则插入数据

    问题:如下图在Sqlite数据库中存在一张Student表,现需要向表中插入数据,如果不存在同名记录则插入,否则不进行插入操作. 解答:利用not exists语句,如下: insert into [ ...

  10. Android查缺补漏(IPC篇)-- 进程间通讯之Socket简介及示例

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8425736.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...