2012-04-10 13 views
1

2つの画像をアップロードするフォームがあります。私は画像サイズなどのこれらの画像の検証をしたい、私は画像フィールドが空白のままでないかどうかを確認することができるようにしたい。MVC 3画像フィールドの有効化

public ActionResult Create(NewsViewModel newsViewModel, IEnumerable<HttpPostedFileBase> files) 
    { 
     try 
     { 
      //more code here 

      var originalFile = string.Empty; 

      IList<string> images = new List<string>(2); 

      foreach (var file in files) 
      { 
       if (file != null && file.ContentLength > 0) 
       { 
        var fileName = Path.GetFileName(file.FileName); 
        if (fileName != null) originalFile = Path.Combine(Server.MapPath(upload_path), DateTime.Now.Ticks+"_ "+ fileName); 
        file.SaveAs(originalFile); 

        images.Add(originalFile); 
       } 
      } 

      if (images.Count == 2) 
      { 
       newsViewModel.News.Thumbnail = images[0] ?? ""; 
       newsViewModel.News.Image = images[1] ?? ""; 
      } 
      //more code here 

      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

イメージのサイズを確認した後、フォームが有効でないことを確認したら、フォームに返信する方法を教えてください。

images.countが2でない場合、どうすれば検証できますか?

+0

[ASP.NET MVCでアップロードされたファイルを検証するには?](http://stackoverflow.com/questions/6388812/how-to-validate-uploaded-file-in-asp-net-mvc) – StriplingWarrior

答えて

3

あなたは、このような何かにModelStateにエラーを追加し、再表示し、同じビューでした:あなたはValidationSummaryあなたの検証エラーメッセージがそれに示すことになる持っている場合、ビューに次に

ModelState.AddModelError(string.Empty, "The image is not valid becuase..."); 
return View(newsViewModel) 

を(最初の引数はコントロールIDと一致する "キー"で、通常はメッセージを表示します。なぜここにString.emptyがあるのでしょうか?それに関連付けるコントロールがあります)。

+0

私は何かを保存する前にチェックをして提出を拒否しなければならないと付け加えます。 –

関連する問題