Javascript 如何在ASP.net MVC 3中成功上载文件后显示警报

Javascript 如何在ASP.net MVC 3中成功上载文件后显示警报,javascript,asp.net-mvc-3,file-upload,jsonresult,Javascript,Asp.net Mvc 3,File Upload,Jsonresult,现在我可以成功上传文件了。。。我现在要做的是,如果文件已成功上载,则显示一个警报框,如果文件未成功上载,则显示错误/异常警报 以下是我的看法: using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { @id = "File", enctype = "multipart/form-data"})) { <div class="control-group">

现在我可以成功上传文件了。。。我现在要做的是,如果文件已成功上载,则显示一个警报框,如果文件未成功上载,则显示错误/异常警报

以下是我的看法:

using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { @id = "File", enctype = "multipart/form-data"}))
        {
        <div class="control-group">                
            <input type="file" id="file" name="file" />
            <input type="submit" value="Upload" />
        </div>
        }

我希望我的观点仍然是。。。没有重定向页面。。。只需显示消息的警报框…谢谢!任何想法都是非常感谢的,因为我知道我的这种方式是不推荐的…:)

这就是我从控制器获取警报所做的

以下是查看代码:

@using (@Html.BeginForm("DoSomething","secure"))
{
    <input type="submit" value="get alert" />
}
@使用(@Html.BeginForm(“DoSomething”,“secure”))
{
}
以下是控制器代码:

[HttpPost]
        public ActionResult DoSomething()
        {
            string message = "hai";
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append("<script type = 'text/javascript'>");
            sb.Append("window.onload=function(){");
            sb.Append("alert('");
            sb.Append(message);
            sb.Append("')};");
            sb.Append("</script>");
            //return Content("<script type='text/javascript'>alert('Hello there');</script>"); //You can get the alert with this line also
            return Content(sb.ToString(), "text/javascript");
        }
[HttpPost]
公共行动结果DoSomething()
{
字符串消息=“hai”;
System.Text.StringBuilder sb=新的System.Text.StringBuilder();
某人加上(“”);
sb.Append(“window.onload=function(){”);
某人加上(“警告(”);
某人附加(信息);
某人加上(“)};”;
某人加上(“”);
//返回内容(“alert('Hello there');”;//您也可以使用此行获取警报
返回内容(sb.ToString(),“text/javascript”);
}
即使不需要脚本,当单击
get alert
按钮时,它也会直接显示警报


希望能有所帮助

我找到了正确的解决方案

上面的链接用于在提交表单之前显示确认框,并显示由我的控制器返回的json对象消息的警报

return Json(new { isok = true, message = "Successfully uploaded the calendar XML file!" }, "application/octet-stream");

你如何在不返回任何操作的情况下确定文件是否已成功上载?我在“此处的某些代码”部分中已处理过该问题。。。我现在的问题是如何显示警报框。。。(如果文件没有上传,我会在“某些代码部分”中自动抛出一个异常)取消注释
返回JavaScript(“警报('calendar XML文件上传成功!”);”
并尝试
$.getScript(“/Controller/Action”,function(){alert('script-loaded');});})在视图中抱歉,但是“返回JavaScript(“警报('calendar XML文件已成功上载!”);”;”;“只会将我重定向到一个页面并以纯html显示警报…可能您应该使用字符串生成器类
System.Text.StringBuilder sb=new System.Text.StringBuilder();string message=“successfull”;某人加上(“”);sb.Append(“警报(”);sb.Append(消息);sb.Append(“)};”;某人加上(“”);返回JavaScript(sb.ToString())你好,卡蒂克!感谢您的努力和支持。我找到了我需要的解决办法。我只需要返回一个内容类型为“application/octetstream”的json对象。Thx再次:)不,在这种情况下它不起作用。,+1感谢你的努力。
return Json(new { isok = true, message = "Successfully uploaded the calendar XML file!" }, "application/octet-stream");