gpt4 book ai didi

c# - ModelState.IsValid 在 C# 中是如何执行的?

转载 作者:行者123 更新时间:2023-12-02 05:06:45 26 4
gpt4 key购买 nike

 [HttpPost]
public ActionResult Create(ALLOCATION_M allocationM)
{
try
{
if (ModelState.IsValid)
{
allocationM.ALLO_ID = GetId();
_unitOfWork.AllocationMRepository.Insert(allocationM);
_unitOfWork.Save();
return RedirectToAction("Index");
}
}
catch (DataException)
{
ModelState.AddModelError("", EditorLocalization.AllocationMasterController_Create_Unable_to_save_changes__Try_again__and_if_the_problem_persists__see_your_system_administrator_);
}

return View(allocationM);
}

C# 运行时内部如何检查 ModelState.IsValid?我的意思是当从 View 调用 post 方法时,它如何检查我的模型状态是有效还是无效。

最佳答案

当默认模型绑定(bind)器尝试从请求值实例化作为参数传递给您的 Controller 操作(在执行此操作之前)的模型时,如果存在一些验证错误,它将把它们添加到 ModelState。因此,一旦执行流程进入您的 Controller 操作,就会向其中添加验证错误。 IsValid 属性只是检查 Errors 集合中是否有元素。

例如,假设您的 ALLOCATION_M 有一个用 [Required] 属性装饰的属性:

[Required]
public string SomeProperty { get; set; }

当您提交表单以调用此 Controller 操作时,如果请求中没有名为 SomeProperty 的参数或者它为空,则默认模型绑定(bind)器将添加与此属性关联的验证错误.

关于c# - ModelState.IsValid 在 C# 中是如何执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16184373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com