2012-03-02 3 views
0

uploadify를 사용하여 ASP.NET MVC 응용 프로그램에서 파일을 업로드하고 있습니다. 컨트롤러 동작에서 파일 업로드가 성공하면 Json (true)을 반환하고 그렇지 않으면 Json (false)을 반환합니다.보기에서 Json 값을 처리합니다.

그러나 UI에서는 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); 
    } 

어떻게 컨트롤러 액션에서 반환 된 값을 캡처하고보기에서 해당 오류 메시지/표시를 표시 할 수 있습니다?

+0

컨트롤러의 실제 코드를 표시 할 수 있습니까? – jose

+0

원래 게시물을 컨트롤러 코드로 편집했습니다. 감사. – GoldenUser

답변

0

당신은,보기에

ViewBag.Result = "Success"; 

그런 다음 컨트롤러

@if (ViewBag.Result == '성공') {...}

편집을 동적 ViewBag를 입력 할 수 있습니다 : MVC2 사용하여, 나는 당신이보기에을 ViewData

ViewData["Result"] = "foo"; 

를 사용할 수 있다고 생각, 당신은 가치를

<%: ViewData["Result"] %> 

EDIT2 : 좋습니다. 가장 좋은 방법은 실제로 모델 개체를 사용하는 것입니다.

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

그런 다음 컨트롤러에, 당신은

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

그런 다음보기로 채워진 모델을 통과,보기에 당신은 Model.Result가

이 시도 호출 할 수 있습니다

안부

+0

MVC 2.0에서 ViewBag를 사용할 수 있습니까? – GoldenUser

+0

나를 위해 작동하지 않습니다. 컨트롤러에서 Json (true/false) 및 ViewData를 전달해야합니까? 또한보기에서이 값을 어떻게 평가해야합니까? 죄송합니다. MVC를 처음 접했습니다 ... – GoldenUser

관련 문제