Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 上传完成后如何获得json结果?_Javascript_Jquery_Json_Asp.net Mvc_Razor - Fatal编程技术网

Javascript 上传完成后如何获得json结果?

Javascript 上传完成后如何获得json结果?,javascript,jquery,json,asp.net-mvc,razor,Javascript,Jquery,Json,Asp.net Mvc,Razor,我不熟悉razor view引擎。我遇到了一个情况,我想上传一个图像与图像浏览器的变化事件。 Jquery函数如下所示: $("#billUpload").change(function (){ $('#uploadImageForm').submit(); } @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data", id = "uploadImageFo

我不熟悉razor view引擎。我遇到了一个情况,我想上传一个图像与图像浏览器的变化事件。 Jquery函数如下所示:

$("#billUpload").change(function (){
$('#uploadImageForm').submit();
}
 @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data", id = "uploadImageForm" }))            
        {
            <span class="file-input btn btn-sm btn-default btn-file">
                Browse&hellip;
                <input id="billUpload" name="File" type="file">
            </span>
        }
Razor视图代码如下所示:

$("#billUpload").change(function (){
$('#uploadImageForm').submit();
}
 @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data", id = "uploadImageForm" }))            
        {
            <span class="file-input btn btn-sm btn-default btn-file">
                Browse&hellip;
                <input id="billUpload" name="File" type="file">
            </span>
        }

现在,整个代码在上传图像时没有问题,但我不理解如何在警报框中显示控制器返回的json消息。提前感谢。

您可以使用
ajax
像下面这样做。希望这有帮助

$("#billUpload").on('change', (function(e) {
    e.preventDefault;
    var formData = new FormData($('#uploadImageForm')[0]);

    $.ajax({
        url : "/Home/Upload",
        type : "POST", 
        data : formData,
        cache : false,
        contentType : false,
        processType : false,
        success : function(data) {
            alert(data);
        }
    });
}));

为此,您应该使用
ajax
提交表单。在这种情况下,控制器获取HttpPostedFileBase null。我试过了。你指的是什么警报框?你在做一个正常的提交,所以它只是要重定向到一个新页面(并显示“完成”,因为你返回了一个
JsonResult
)@StephenMuecke我希望结果在同一页面上生成。然后使用ajax和
FormData
(请参阅)。但是,添加永远不会使用的
ViewBag
属性和
ModelState
错误有什么意义呢?这是一个很好的解决方案。但在IE8中不起作用。我建议使用来自的ajaxForm插件。您能告诉我应该放置html.beginform吗。因为我在上面提到,给定的程序不调用控制器。:-(如果您的控制器位于任何区域,请在
url
中添加区域名称。