簡體   English   中英

如何在MVC中單擊一個按鈕同時調用javascript函數和C#函數

[英]How to call both javascript function and C# function on a single button click in MVC

我想通過單擊一個按鈕來調用用Model Class編寫的javascript和函數。 我使用以下代碼:

<script language="javascript" type="text/javascript">
    function RunEXE() {
        var txtfile = document.getElementById("txtFileName");
        //var txtProgram = document.getElementById("txtProgram");
        //if ((!String.IsNullOrEmpty(txtfile)) && (!String.IsNullOrWhiteSpace(txtProgram))) {
        if (txtfile.value != "") {
            var oShell = new ActiveXObject("WScript.Shell");
            //var prog = "c:\\Pgms\\sample0.exe";

            var prog = "\\\\Test-PC\\Programms\\" + txtfile.value + ".exe";
            oShell.Run('"' + prog + '"', 1);
        } else {
            alert('The file name must be entered in file name textbox');

        }
    }
    </script>

<input type="submit" name="button" value="Run" onclick="RunEXE()" />

下面的代碼是Model函數:

public ActionResult Run(UserProgram userProgram)
    {
        SaveAndCompile(userProgram);
        return null;
    }

但是它僅與Run()一起使用而沒有運行RunEXE()

[HttpPost]

public ActionResult RunAction(string option1){//如果需要,您可以使用“ option1”值來確定要傳遞UserProgram的UserProgram userProgram = new UserProgram(); 運行(userProgram);

//you can return a JSON reuslt that you can evaluate back at the client
return Json(new { @Success = true, @MyString = "a string" });

}

$.post('@Url.Action("RunAction", "MyController")',
  {
     option1: "some optional value"
  },
  function (data) {
      alert("success!");
      //here you have access to your JSON result via data, for example:
      //data.Success = true
      //data.MyString = "a string"
  }

);

在您的情況下,您可以通過JQuery提交功能提交表單。

我假設您的代碼如下所示:

<form id="form" action="/Run">
// your some inputs
<input type="submit" name="button" value="Run" />
</form>

提交的JavaScript將是:

$(function() {
    $('#form').submit(function() {
        // to do something before the form is submitted
        RunEXE();
        return true; // return false to cancel form action
    });
});

干杯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM