我用以下其他字符替换标签后,使用json格式在Ajax请求中传递html标签:
function changeJson(json) {
var ResultValue = "";
ResultValue = json;
var resultlength = ResultValue.length;
for (var wordlength = 0; wordlength < resultlength + 1; wordlength++) {
ResultValue = ResultValue.replace("<", " l_ ");
ResultValue = ResultValue.replace(">", " r_ ");
ResultValue = ResultValue.replace("&", " and ");
}
return ResultValue;
}
还有其他方法可以做到。
答案 0 :(得分:3)
你为什么这样做?这不是必需的。
只需使用[AllowHtml]
属性修饰视图模型属性即可。就像那样:
public class MyViewModel
{
[AllowHtml]
public string SomeHtmlProperty { get; set; }
}
然后你可以有一个控制器动作来处理AJAX调用:
[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
// do something with the model.SomeHtmlProperty here
...
}
最后你可以使用$ .ajax方法调用这个控制器动作:
$.ajax({
url: '/somecontroller/someaction',
type: 'POST',
data: { someHtmlProperty: 'some value that could contain <, >, &, and whatever you want characters' },
success: function(result) {
// handle the results from your AJAX call here
}
});
正如您所看到的,您并不需要编写名为changeJson
的函数或类似的函数。
答案 1 :(得分:0)
Darin Dimitrov的解决方案非常好但是如果你想要你可以使用encodeURIComponent和decodeURIComponent来编码和解码客户端的html字符串。在服务器端,您可以使用HttpUtility.HtmlDecode解码编码的字符串。
encodeURIComponent("<a>& abc</a>");