获取以html而非文本json呈现的链接

时间:2011-03-01 01:08:14

标签: javascript jquery html json model-view-controller

我通过使用li发布到我的MVC应用程序中的操作方法来响应$.post的点击。

我想在Json发回一个链接。

我可以将此链接呈现为html而不是文本吗?怎么样?

我试过这个,只是为了测试html:

var link = "<b>Hi</b>";
var encoded = Server.HtmlEncode(link);

&lt;b&gt;Hi&lt;/b&gt;

形式出现

当然我只能使用Json.encode或visual studio方法,我不需要自己格式化吗?有相当广泛的google搜索,无法找到有关Json.encode的任何信息

var link = "<b>Hi</b>";
var encoded = new JavaScriptSerializer().Serialize(link);

呈现的页面"\u003cb\u003eHi\u003c/b\u003e"

如果我只发送link变量,即:

var link = "<b>Hi</b>"

<b>Hi</b>呈现

这是将其发回的行:

return Json(new {Title = pTitle, Selection = pSelection, Link = pLink}, JsonRequestBehavior.AllowGet);

开始变得沮丧,wtf!


愚蠢的我,我没有在问题出现的地方发布足够的代码:

<script type="text/javascript">
    function TreeView_onSelect(e) {
    ...
    $.post(url, id, function (data, textStatus) {
    ...
    $("#panel-link").text(data.Link);
    }

$("#panel-link").text(data.Link);

obv必须是

$("#panel-link").html(data.Link);

3 个答案:

答案 0 :(得分:2)

尝试使用JavaScriptSerializer

var link = "<b>Hi</b>";
var encoded = new JavaScriptSerializer().Serialize(link);

答案 1 :(得分:0)

尝试使用javascript encodeURI()函数。

http://www.w3schools.com/jsref/jsref_decodeuri.asp

<script type="text/javascript">

var uri="mytest.asp?name=ståle&car=saab";
document.write(encodeURI(uri)+ "<br />");
document.write(decodeURI(uri));

</script>

上面代码的输出将是:

mytest.asp?name=st%C3%A5le&car=saab
mytest.asp?name=ståle&car=saab

答案 2 :(得分:0)

我和你有同样的问题并且整天杀了我, 我使用Json.NET

解决了这个问题

示例代码为:

Newtonsoft.Json.JsonConvert.SerializeObject(link);

参考 http://json.codeplex.com/documentation