MVC 3 图像字段验证

本文关键字:验证 字段 图像 MVC | 更新日期: 2023-09-27 18:30:42

我有一个表格,我上传了两张图片。我想对这些图像进行验证,例如图像大小,我希望能够检查图像字段是否未留空。

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,我该如何验证?

有什么想法吗?

MVC 3 图像字段验证

您可以向 ModelState 添加一个错误,然后重新显示相同的视图,如下所示:

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

然后在视图中,如果您有 ValidationSummary 您的验证错误消息将显示在其上(第一个参数是与控件 ID 匹配的"键",通常显示旁边的消息,这就是为什么它在这里是 String.empty,但也许你有一个控件希望它与之关联)。