,validation,asp.net-mvc-5,modelstate"/>

首页 > 解决方案 > 来自 IEnumerable 的 ASP MVC5 ModelState.Remove("myField")

问题描述

modelValues- 将仅包含idname

company- 我需要单独发送

$.ajax({
       ..., 
       data: JSON.stringify({"vmData" : modelValues, "company": "Google"})
       ...
});

public class UserViewModel{
    [Required]
    public int id{get;set;}
    [Required]
    public string name{get;set;}
    [Required]
    public string company{get;set;}
}

public ActionResult Index(IEnumerable<UserViewModel> vmData, string company){
   if(!string.IsNullOrEmpty(company)){
      ModelState.Remove("company");
   }
   
   // is never valid because "company" is always null
   if(ModelState.IsValid()){...}
}

我用错了ModelState.Remove("company");吗?它不适用于 IEnumerable?

标签: validationasp.net-mvc-5modelstate

解决方案


我已经设法通过这样做来解决它:

if(!string.IsNullorEmpty(company)){
 for(var i=0; i < vmData.Count; i++){
   ModelState.Remove("vmdata[" + i + "].company");
 }
} 

推荐阅读