C# Modelstate。AddmodelError未显示

C# Modelstate。AddmodelError未显示,c#,entity-framework,asp.net-mvc-4,C#,Entity Framework,Asp.net Mvc 4,我犯了一个错误。但它现在正在显现。是的,我在那条线上放了一个断点,它到达了那条线上,但现在显示出来了 以下是actioni方法: [HttpPost] public ActionResult EditPhotos(ImageUploadModel ImageUpload) { var validImageTypes = new string[] { "image/gif",

我犯了一个错误。但它现在正在显现。是的,我在那条线上放了一个断点,它到达了那条线上,但现在显示出来了

以下是actioni方法:

[HttpPost]        
        public ActionResult EditPhotos(ImageUploadModel ImageUpload)
        {
            var validImageTypes = new string[]
            {
        "image/gif",
        "image/jpeg",
        "image/pjpeg",
        "image/png"
            };
            try
            {

                if (ImageUpload.file == null && ImageUpload.file.ContentLength == 0)
                {
                    ModelState.AddModelError("file", "This field is required");

                }


                else if (!validImageTypes.Contains(ImageUpload.file.FileName.Substring(ImageUpload.file.FileName.LastIndexOf('.'))))
                {
                   ModelState.AddModelError("file", "Please upload Your Photo of type: " + string.Join(", ", validImageTypes));
                   return View(ImageUpload);                   
                }

                else if (ImageUpload.file != null && ImageUpload.file.ContentLength > 0)
                {
                    var DirSeparator = Path.DirectorySeparatorChar;
                    var fileName = Path.GetFileName(ImageUpload.file.FileName);
                    //var fileName2 = Path.GetFileName(@"\\Cyclist3.jpg");
                    var path = Server.MapPath(@"\\Images\\profile" + DirSeparator + fileName.Replace('+', '_'));
                    ImageUpload.file.SaveAs(path);
                    ViewBag.Message = "File has been uploaded successfully";
                    ModelState.Clear();
                }


            }
            catch (FileLoadException ex)
            {

                throw;
            }



            if (ModelState.IsValid)
            {
                string username = User.Identity.Name;
                // Get the userprofile
                UserProfile user = db.userProfiles.FirstOrDefault(u => u.UserName.Equals(username));

                // Update fields

                byte[] uploadedFile = new byte[ImageUpload.file.ContentLength];              
                ImageUpload.file.InputStream.Read(uploadedFile, 0, ImageUpload.file.ContentLength);
                user.file = uploadedFile;
                user.ImageMimeType = ImageUpload.file.ContentType;

                db.Entry(user).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbEntityValidationException e)
                {
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                            eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                    throw;
                }

            }

            return RedirectToAction("Edit", routeValues: new { controller = "Account", activetab = "tabs-2" });
        }
这是一种观点:

 <div class="lifile">
                    <div id="upload-choices">
                        <div class="editor-label">


                            @Html.ValidationMessageFor(model => model.file)

                        </div>

                    </div>
                  </div>
我在AddModelError上放置了一个断点,它到达了那一行,但是错误没有显示出来

多谢各位

我试过这个:

视图:


我相信ModelStateDictionary不会标记重定向结果,您应该返回ViewResult


如果在AddModelError行上放置断点,则该行尚未执行。在下一行放置断点,错误应该在那里。

检查此项:感谢您的answare,查看我的编辑帖子,查看我的更新帖子。对于您试图实现的目标,jQuery将是一个更好的选择。感谢您的评论,但我只有一个viewmodel:ImageUploadModel ImageUpload,但如果我返回该选项:view(ImageUpload)不起作用
{
                       ModelState.AddModelError("file", "Please upload Your Photo of type: " + string.Join(", ", validImageTypes));
                       return View(ImageUpload);                   
                    }
<div class="lifile">
                    <div id="upload-choices">
                        <div class="editor-label">


                            @Html.ValidationMessageFor(model => model.file)
                           @Html.ValidationSummary(true)

                        </div>

                    </div>
                  </div>
 else if (!validImageTypes.Contains(ImageUpload.file.ContentType))
                {
                    ModelState.AddModelError(string.Empty, "Please choose either a GIF, JPG or PNG image.");
                    return View(ImageUpload);

                }