Show / Hide Table of Contents

MSDN.WhiteKnight - Stack Overflow answers

Ответ на "Можно ли написать такую функцию, которая будет вызываться из JS и из C#"

Answer 877057

Link

Можно использовать 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.

Back to top Stack Overflow answers (published from sources in GitHub repository). Copyright (c) 2020, MSDN.WhiteKnight. Content licensed under BSD 3-Clause License.
Generated by DocFX