在视图中处理Json值

问题描述 投票:0回答:1

我正在使用uploadify在我的ASP.NET MVC应用程序中上传文件。在控制器动作中,我 return Json(true) 如果文件上传成功或 Json(false) 如果没有。

但在用户界面中,我没有看到任何指示,如果是 Json(false) 被返回。例如:tst1.html没有上传,但它仍然像其他文件一样显示为已上传。请看下面。enter image description here

这是控制器的代码

[HttpPost]
        public ActionResult Upload(HttpPostedFileBase fileData)
        {
                if (fileData != null && fileData.ContentLength > 0)
                {
                    if (Path.GetExtension(fileData.FileName) == ".zip")
                    {
                        var zipFile = Server.MapPath("~/Content/uploads/" + Path.GetFileName(fileData.FileName));
                        fileData.SaveAs(zipFile);

                        FileStream fs = System.IO.File.OpenRead(zipFile);
                        ZipFile zf = new ZipFile(fs);

                        foreach (ZipEntry zipEntry in zf)
                        {
                            if (zipEntry.Name.EndsWith(".htm") || zipEntry.Name.EndsWith(".html"))
                            {
                                return Json(true);
                            }
                        }
                        fs.Close();
                        fs.Dispose();
                        System.IO.File.Delete(zipFile);
                    }
                    else
                    {
                        var fileName = Server.MapPath("~/Content/uploads/" + Path.GetFileName(fileData.FileName));
                        fileData.SaveAs(fileName);
                        return Json(true);
                    }
                }
                return Json(false);
    }

我如何捕捉控制器动作返回的值,并在视图上显示适当的错误信息指示器?

c# asp.net asp.net-mvc uploadify
1个回答
0
投票

你可以在控制器中填充动态ViewBag。

ViewBag.Result = "Success";

然后在查看。

@if(ViewBag.Result == 'Success') { ... ... }

EDIT: 使用MVC2,我认为你可以使用ViewData

ViewData["Result"] = "foo";

在查看时,你得到的值是

<%: ViewData["Result"] %>

EDIT2 : OK,最好的方法是实际拥有模型对象。

class YourViewModel {
     public string Result {get; set; }
}

然后,在你的控制器上,你把填充的模型传递给视图。

return Json(new YourViewModel { Result= "whatever" });

然后,在视图中你可以调用Model.Result

试试这个

问候

© www.soinside.com 2019 - 2024. All rights reserved.