Jquery函数在MVC4中不在客户端工作

时间:2014-03-13 05:55:32

标签: c# javascript jquery asp.net-mvc

我使用了以下代码

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


<script type="text/javascript">
function RunEXE() {

    $.post('@Url.Action("Compile", "Compile")',
        {
            fileName: $("#FileName").val(),
            programCode: $("#ProgramCode").val(),
            compileOutput: $("#CompileOutput").val(),
            language: "C",
            button: "Run"
        },
        function(data) {
            var oShell = new ActiveXObject("WScript.Shell");
            var prog = "\\\\Test-PC\\Programms\\Ramkumar\\"+data.MyString+".exe";
            oShell.Run('"' + prog + '"', 1);
        }
    );
}

当我使用上面的代码时,jquery正在工作到var prog = "\\\\Test-PC\\Programms\\Ramkumar\\"+data.MyString+".exe";之后没什么好开心的。但是当我们没有从jquery调用服务器端函数时,它工作正常。

2 个答案:

答案 0 :(得分:1)

Javascripts在客户端计算机上运行,​​浏览器不允许您在客户端计算机上运行exe 以实现客户端计算机安全性。如果要在服务器端运行某些 exe ,请在服务器上发送ajax call指示,以便通过c#代码运行exe。

答案 1 :(得分:0)

在处理提交按钮上的onclick时,尝试将 preventDefault()添加到函数末尾。

或者

尝试更改

<input type="submit"> to <input type="button">

编辑:

function RunEXE() {

$.post('@Url.Action("Compile", "Compile")',
    {
        fileName: $("#FileName").val(),
        programCode: $("#ProgramCode").val(),
        compileOutput: $("#CompileOutput").val(),
        language: "C",
        button: "Run"
    },
    function(data) {
        var oShell = new ActiveXObject("WScript.Shell");
        var prog = "\\\\Test-PC\\Programms\\Ramkumar\\"+data.MyString+".exe";
        oShell.Run('"' + prog + '"', 1);
    }        
);
return false; // equivalent to preventDefault() in JQuery
}