MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Можно ли написать такую функцию, которая будет вызываться из JS и из C#"
Answer 877057
Можно использовать Microsoft Script Control Library для выполнения Javascript на сервере. Правда, она на самом деле выполняет JScript, а не Javascript, но суть та же. Чтобы это работало, группа приложений в IIS должна быть настроена на работу в 32-битном процессе.
//Reference: COM -> Microsoft Script Control Library public static string ExecuteJS(string code,string function,params object[] argv) { MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl(); sc.Language = "JScript"; sc.AddCode(code); object result = sc.Run(function, argv); return result.ToString(); }
Использование на сервере:
public const string MyFunction = "function PrintSum(a,b){return a+' + '+b+' = '+(a+b);};"; public static string Func() { return ExecuteJS(MyFunction,"PrintSum",1.1,2.2); }
Использование на клиенте:
<script language="javascript" type="text/javascript"> @(new System.Web.HtmlString(MvcApplication1.MyClass.MyFunction)) ; document.write(PrintSum(1.1,2.2)); </script>
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.