我有一个Web服务器,它由服务器端的ASP.NET和客户端的Javascript / jQuery提供支持。我想知道是否可以对ASP.NET WebMethod进行Ajax调用并执行返回的javascript代码。例如(非常简化的例子):
我的HTML:
<html>
<head>
<title></title>
</head>
<body>
<div id="divMessage"></div>
</body>
</html>
在我的C#中:
[WebMethod]
public static string GetScriptCode()
{
return "$('#divMessage').html('This is a test');";
}
在我的javascript中:
$(function() {
var handler = function(msg) {
var myScriptCode = msg.d;
// I'd like $('#divMessage') to contain my message
};
$.ajax({
type: "POST",
url: "Test.aspx/GetScriptCode",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: handler
});
});
我喜欢从GetScriptCode()
返回的javascript来执行。任何想法如何做到这一点?
答案 0 :(得分:0)
使用eval()是一种选择,但正如每个人都说eval是邪恶的,不要使用它。
我通常使用动态函数来执行此操作:
var theCode = "$('#divMessage').html('This is a test');";
var F=new function (theCode);
return(F());
看起来像是重新发明了eval,但这就是我现在如何做到的。