0

我一直在使用一个很棒的录音机,它是 recorder.js-master。但我无法使用 MVC 控制器进行上传。

这是我的javascript函数。

function AudioUpload(title, description) {
    Recorder.upload({
        method: "POST",
        url: '@Url.Action("Upload", "Audio")',
        audioParam: "Recording", 
        params: {
            "Title": title,
            "Description": description
        },
        success: function (responseText) {     
            alert(responseText.Success);
        },
        error: function () {                 
            alert("error");
        },
        progress: NULL            
    });
}

这是我的音频控制器

    public JsonResult Upload(VoicePassage passage)
    {
        //upload Audio

        return Json(new { Success = true });
    }

我在上传中有一个断点,只是为了知道它会转到我的控制器,但它没有。请帮忙。这是我遵循的参考。http://marc.codewisp.com/2013/05/07/in-browser-audio-recording-recorder-js-asp-net-mvc/?replytocom=12#respond

问候,

基督教

4

1 回答 1

2

我是您链接到的原始帖子的作者。

有几件事要尝试:

  • 向 JavaScript 函数添加断点:如果没有命中,则说明您的 JavaScript 有问题。
  • 检查浏览器的网络活动: 在Chrome中,在 下Developer Tools,转到Network选项卡并尝试上传。看看它是否点击了正确的 URL。
  • 确保您在'@Url.Action...'Razor 视图中使用。它不适用于外部 JavaScript 文件。

如果需要@Url.Action,您可以在 Razor 视图中使用它,将其分配给临时全局变量并在外部 JavaScript 文件中使用它。

在您的视图中,在对外部 JS 的引用之前添加以下内容:

<script type="text/javascript">
    var audioAction = '@Url.Action("Upload", "Audio")';
</script>

在您的 JavaScript 文件中,更改'@Url.Action("Upload", "Audio")'audioAction,如下所示:

function AudioUpload(title, description) {
    Recorder.upload({
        method: "POST",
        url: audioAction,
        audioParam: "Recording", 
        params: {
            "Title": title,
            "Description": description
        },
        success: function (responseText) {     
            alert(responseText.Success);
        },
        error: function () {                 
            alert("error");
        },
        progress: NULL            
    });
}
于 2013-09-23T13:24:14.877 回答