日期:2014-05-17  浏览次数:20513 次

.net c#中如何实现与Jscript完全一样的eval函数解析执行?
test.aspx代码如下:
<%@ Page Language="Jscript"%>
<%Response.Write(eval("(1+5)+'<br />'+DateTime.Now.ToString()"));%>

执行结果:
6
2011-6-1 21:33:31


如果用C#实现与Jscript完全一样的eval函数?
<%@ Page Language="C#">
 Response.Write(Microsoft.JScript.Eval.JScriptEvaluate("1+2, Microsoft.JScript.Vsa.VsaEngine.CreateEngine()).ToString());
引用Microsoft.JScript和Microsoft.Vsa可以使用JScript的Eval做一些检查的运行,如下面返回结果为1+2的和3

但无法将字符串转为执行代码,如test.aspx第一页那样就会出错
 Response.Write(Microsoft.JScript.Eval.JScriptEvaluate("(1+5)+'<br />'+DateTime.Now.ToString()", Microsoft.JScript.Vsa.VsaEngine.CreateEngine()).ToString());

出错


------解决方案--------------------

不用用eval吧。

<%Response.Write((1+5)+"<br />"+DateTime.Now.ToString());%>
------解决方案--------------------
http://topic.csdn.net/u/20110430/02/a3a306f8-2e21-4271-b3c5-35e2018933be.html