簡體   English   中英

如何在不將模型與操作方法綁定的情況下驗證模型?

[英]How can i validate a model without binding it with the action method?

我正在使用操作方法更新數據庫值,但我使用 ajax 調用將更新的值發送到該方法中,因此我沒有將模型與此方法綁定,因此如何驗證此操作方法的模型,例如我未將其與我的方法?

public ActionResult Update(int id, double? value)
    {
        if (!ModelState.IsValid)
        {
            Response.StatusCode = (int)HttpStatusCode.BadRequest;
            return Json("Not valid model");
        }

        if (ModelState.IsValid) { 
         var oldTag = db.Tags.Where(x => x.Id == id).FirstOrDefault();
         List<UpdatedData> updatedDatas = new List<UpdatedData> {
         new UpdatedData
         {
             Id=id,
             OldTagValue=oldTag.TagValue,
             NewTagValue=value,
             TagName = oldTag.TagName
         }
        };
            obj.updatedDatas = new List<UpdatedData>();
            obj.updatedDatas.AddRange(updatedDatas);
            return PartialView("_Update_Confirmation", obj);
        }
        return View("Index");

    }

您可以更改Update方法

public class ProfileViewModel
{
    [Required]
    public int Id { get; set; }

    public double? value { get; set; }
}

然后

public ActionResult Update(ProfileViewModel viewModel)
{
    if (!ModelState.IsValid)
    {
        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return Json("Not valid model");
    }
 //...
}

示例DataAnnotations模型綁定器將使用從模型上的DataAnnotations屬性獲取的驗證錯誤填充模型狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM