远程验证Json MVC

时间:2019-05-15 12:57:48

标签: asp.net-mvc

在提交表单之前,我需要验证用户的输入字段值。 我已经在我的自定义控制器中创建了一个动作,并用Month装饰了该字段。

[Required]
        [DataType(DataType.Date)]
        //[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:Y}")]
        [DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}")]
        [Display(Name = "Month")]
        [Remote("IsvalidMonth", "Objectives", AdditionalFields = "UserID,SalesObjectiveID", ErrorMessage = "Month already existing")]
        //[DisplayFormat(DataFormatString = "{0:MMM-yyyy}")]
        public Nullable<System.DateTime> Month { get; set; }    

我的验证是:

public JsonResult IsvalidMonth(DateTime Month, int? SalesObjectiveID, int? UserID)
        {
            var monthexist = _context.TBL_SalesObjective.Where(x => x.Month == Month && x.SalesObjectiveID == SalesObjectiveID && x.UserID == UserID).FirstOrDefault().Month;

            return Json(!monthexist, JsonRequestBehavior.AllowGet);
        }

但我不能使用!monthexist,因为操作员!无法应用。

我如何在Monht中进行验证?

1 个答案:

答案 0 :(得分:0)

'!'运算符可以与布尔值一起使用,这里因为您正在执行.FirstOrDefault().Month而不是布尔值,所以不能使用'!'运算符。

请在您的IsvalidMonth()方法中尝试以下代码

var monthexist = _context.TBL_SalesObjective.Any(x => x.Month == Month && x.SalesObjectiveID == SalesObjectiveID && x.UserID == UserID);