Llamar a la función de JavaScript desde C#

Javascript.js

function functionname1(arg1, arg2){content}

Archivo C #

public string functionname(arg)
{
    if (condition)
    {
        functionname1(arg1,arg2); // How do I call the JavaScript function from C#?
    }
}

Consulte el código anterior y sugiérame la idea de llamar a una función de JavaScript desde C#.

preguntado el 21 de septiembre de 13 a las 12:09

no te entiendo ¿Le gustaría llamar a la función js en el archivo de código C#? o Función de archivo de código para JS? -

5 Respuestas

Si desea llamar a la función de JavaScript en C#, esto le ayudará:

public string functionname(arg)
{
    if (condition)
    {
        Page page = HttpContext.Current.CurrentHandler as Page;
        page.ClientScript.RegisterStartupScript(
            typeof(Page),
            "Test",
            "<script type='text/javascript'>functionname1(" + arg1 + ",'" + arg2 + "');</script>");
    }
}

respondido 28 nov., 15:08

Esto puede resultarle útil:

<script type="text/javascript">
    function Showalert() {
        alert('Profile not parsed!!');
        window.parent.parent.parent.location.reload();
    }
    function ImportingDone() {
        alert('Importing done successfull.!');
        window.parent.parent.parent.location.reload();
    }
</script>

if (SelectedRowCount == 0)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "displayalertmessage", "Showalert();", true);
}
else
{
    ScriptManager.RegisterStartupScript(this, GetType(), "importingdone", "ImportingDone();", true);
}

respondido 28 nov., 15:08

Archivo .aspx en la sección de encabezado

<head>
    <script type="text/javascript">
        <%=YourScript %>
        function functionname1(arg1,arg2){content}
    </script>
</head>

archivo .cs

public string YourScript = "";
public string functionname(arg)
{
    if (condition)
    {
        YourScript = "functionname1(arg1,arg2);";
    }
}

respondido 28 nov., 15:08

Puede llamar a las funciones de javascript desde C# usando Jering.Javascript.NodeJS, una biblioteca de código abierto de mi organización:

string javascriptModule = @"
module.exports = (callback, x, y) => {  // Module must export a function that takes a callback as its first parameter
    var result = x + y; // Your javascript logic
    callback(null /* If an error occurred, provide an error object or message */, result); // Call the callback when you're done.
}";

// Invoke javascript
int result = await StaticNodeJSService.InvokeFromStringAsync<int>(javascriptModule, args: new object[] { 3, 5 });

// result == 8
Assert.Equal(8, result);

La biblioteca también admite invocaciones directamente desde archivos .js. Di que tienes un archivo C:/My/Directory/exampleModule.js conteniendo:

module.exports = (callback, message) => callback(null, message);

Puede invocar la función exportada:

string result = await StaticNodeJSService.InvokeFromFileAsync<string>("C:/My/Directory/exampleModule.js", args: new[] { "test" });

// result == "test"
Assert.Equal("test", result);

respondido 14 mar '20, 19:03

ahora puede hacerlo con Blazor, consulte JSInterop

Respondido 30 Oct 22, 13:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.