我有這個javasccript表達式代碼作爲我的C#代碼中的字符串,我需要使用Microsoft.JScript.Eval.JScriptEvaluate(c#)評估它(執行它)並獲取結果。Еxception從C#執行JS代碼#
string code = @"var roles=[];
roles.push('LOC_IND');
roles.push('MANAGERL3');
var country='CANADA';
var age=80;
eval(""roles.indexOf('Administrator')>=0||roles.indexOf('LOC_IND')>=0&&country=='CANADA'"")";
// Calling JScript.Eval to execute that code
var engine = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
var result = Microsoft.JScript.Eval.JScriptEvaluate(code, engine);
的JavaScript代碼本身工作正常,如果你在瀏覽器控制檯執行它,然後返回 「真」,符合市場預期:但是
var roles=[];
roles.push('LOC_IND');
roles.push('MANAGERL3');
var country='CANADA';
var age=80;
eval("roles.indexOf('Administrator')>=0||roles.indexOf('LOC_IND')>=0&&country=='CANADA'")
,當我把它從C#評估和演示。 JScriptEvaluate(代碼,引擎);我得到這個例外:
預期功能。
我不知道它期望什麼功能,我該怎麼做才能解決這個問題? 最後Eval.JScriptEvaluate(代碼,引擎)必須返回true。
謝謝
該代碼應該做什麼?爲什麼它使用'eval()'? – Pointy
很明顯,它必須評估表達式,在瀏覽器控制檯中運行它,你會看到。 – monstro
它與'eval()'一起工作,但它也完全相同*沒有*'eval()'。 – Pointy