【问题标题】:Failed to call Asp.net method from Javascript无法从 Javascript 调用 Asp.net 方法
【发布时间】:2015-01-22 03:48:10
【问题描述】:

我想从 Javascript 调用 Asp.Net 函数。我有一个像这样调用 Asp.net MVC 函数的示例。

@{
    var payUrl = "/recordings/recording-123.wav";

    <!-- saves the wav file to local folder called recodings using a session value to make unique file names -->
}
    function setupRecorder() {
        Wami.setup({
            id: "wami",
            onReady: setupGUI
        });
    }

    function setupGUI() {
        var gui = new Wami.GUI({
            id: "wami",
            recordUrl: "http://localhost:5296/home/Save",
            playUrl: "@payUrl"
        });

        gui.setPlayEnabled(false);
    }

这是代码中的确切调用

recordUrl: "http://localhost:5296/home/Save",

HomeController 有一个方法 Save 在这里被调用

public ActionResult Save()
        {
            Request.SaveAs(Server.MapPath("/recordings/recording-123.wav"), false);
            return Json(new { Success = true }, JsonRequestBehavior.AllowGet);
        }

我想要 Asp.Net 中的确切内容,但如果有人可以帮助我,我将无法找到解决方案,我会感谢你这是我项目中唯一剩下的部分,我只需要保存声音的。我就是这样的

<script>
    function setupRecorder() {
        Wami.setup({
            id: "wami",
            onReady: setupGUI
        });
    }

    function setupGUI() {
        var gui = new Wami.GUI({
            id: "wami",
            recordUrl: "Default.aspx/Save",
            playUrl: "/recordings/recording-123.wav"
        });

        gui.setPlayEnabled(false);
    }
</script>

我有一个 webform Default.aspx,它有方法 save

recordUrl: "Default.aspx/Save",

这是确切的 default.aspx.cs 方法。我试过 [HttpGet] 和 [httpPost] 都没有为我工作。

 [HttpGet]
[System.Web.Services.WebMethod]
    public void Save()
        {
            Request.SaveAs(Server.MapPath("/recordings/recording-123.wav"), false);
            return Json(new { Success = true }, JsonRequestBehavior.AllowGet);
        }

【问题讨论】:

  • 尝试使用完全合格的网址而不是短网址
  • 完整网址是什么意思?如果我使用这个rec​​ordUrl:“Default.aspx”,那么它正在使用Page_load方法,但我希望它找到保存方法@qamar

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


【解决方案1】:

我认为您的保存方法需要标记为静态,因为它是一种网络方法。只有这样你才能从 JS 调用它

  [System.Web.Services.WebMethod]
  public static void Save()
    {
        Request.SaveAs(Server.MapPath("/recordings/recording-123.wav"), false);
        return Json(new { Success = true }, JsonRequestBehavior.AllowGet);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-07
    • 2018-03-31
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多