2017-06-09 65 views
1

嗨,大家好,这对我来说是一个愚蠢但又重要的小问题。用'替换单引号'

我有一个jQuery,拿起有点单引号的字符串,并导致根本没有采摘它们。即

data-name='someone's name'; 

jQuery的拾取代码

$('#id').text($(this).data("name")); 

我的猜测是jQuery的封闭是''""所以someone's name'被关闭,因此这导致someone

所以我试图做以下事情 -

string name = "someone's name"; 

//Attempted replace here 
<div data-name='<%# Eval("name").ToString().Replace("'","\'") %>'></div> 

但我得到Parser Error Message: The server tag is not well formed.

我在做什么错?

+1

一般使用双引号'dataname =“xxx”'。要处理可能包含引号的字符串,您需要将其编码为HTML实体('HttpUtility.HtmlAttributeEncode()') –

+0

您需要这个或类似的东西:'Server.HTMLEncode Method' https://msdn.microsoft.com/ en-us/library/ms525347(v = vs.90).aspx –

+0

@AlexK。而已!请发布它作为答案 – envyM6

回答

2

中平凡使用双引号data-name="someone's name"

为了解决这个问题可能包含报价,你需要编码为HTML实体字符串:

HttpUtility.HtmlAttributeEncode("someone's name")产生someone&#39;s name

(您需要使用外"作为报价为此正常工作)