如何检查子模型状态是否有效,而不是在asp.net core中检查主模型状态?

Prashant Odhavani

型号:此处SubjectDetailsModel包含子型号StudentDetailsModel

    public class SubjectDetailsModel
    {
        [Key]
        public int Id { get; set; }
        [Required]
        public string SubjectName { get; set; }
        [Required]
        public string SubjectCode { get; set; }

        public StudentDetails studentDetails { get; set; }

    }

    public class StudentDetailsModel
    {
        [Key]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        [Required]
        public string EnrollmentNumber { get; set; }
        [Required]
        public string Gender { get; set; }
        [Required]
        public string City { get; set; }

    }

控制者

让我知道当我SubjectDetailsModel在的post方法中传递Parameter作为参数时Index,这一次我只需要检查StudentDetailsModel状态是否有效。那我该怎么办呢?

    public class HomeController : Controller
    {
        [HttpGet]
        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult Index(SubjectDetailsModel model)
        {
            //Here i need to check StudentDetails ModelState.Isvalide instead of SubjectDetails model. OR
            //How can the check sub-model state is valid or not instead of checking the main model state?
            if (ModelState.IsValid) // This condition checking SubjectDetailsModel State.
            {
                // Insert recorde
            }
            return View(model);
        }
    }

视图

@model SubjectDetailsModel
<form method="post" asp-action="Index" asp-controller="Home">
    <input asp-for="Id" hidden />
    <input asp-for="SubjectName"/>
    <input asp-for="SubjectCode" />
    <input asp-for="studentDetails.Name"/>
    <input asp-for="studentDetails.Gender" />
    <input asp-for="studentDetails.City" />
    <button type="submit">Submit</button>
</form>
凯贝克

如果还需要在邮件模型上添加验证属性,则可能会有些棘手。对于您的情况,我建议在单独的类中使用Fluent Validation NuGet软件包,该软件包将帮助编写您的自定义验证代码。

如果看起来像这样:

    public class SubjectDetailsModelValidator : AbstractValidator<SubjectDetailsModel>
    {
        public SubjectDetailsModelValidator()
        {
            RuleFor(x => x.studentDetails.Name).NotEmpty();
            RuleFor(x => x.studentDetails.EnrollmentNumber).NotEmpty();
            RuleFor(x => x.studentDetails.Gender).NotEmpty();
            RuleFor(x => x.studentDetails.City).NotEmpty();
        }
    }

这是文档,请看一下:https : //docs.fluentvalidation.net/en/latest/aspnet.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ASP.NET WEBAPI Core中的模型状态验证

如何仅从asp.net mvc中的主模型发送视图模型?

在UseEndpoints之前,如何检查路由在.NET Core中间件中是否有效?

是否可以将配置绑定到.NET Core中的无状态/只读模型?

ViewModel 的模型状态无效 - C# ASP.NET CORE

.NET-检查URL是否指向有效资源

ASP.NET Core:asp- *属性在模型上使用请求有效负载吗?

如何检查模型中的子模型是否已在Asp MVC视图中定义?

检查模型的量化状态

如何使用Ajax从asp.net Core2.2中的子模型中获取值

如何防止ASP.NET Core在空请求主体上将模型状态标记为无效?

ASP.NET Core Razor页面模型状态无效且模型数据为空

使用razor语法在asp.net mvc视图中检查电子邮件地址是否有效

在odoo中删除子模型(使用继承的主模型创建)的记录时,如何删除主模型的记录

如何在ASP.NET MVC模型验证中检查字符串是否包含HTML代码?

如何在 .NET 中持续检查串行端口的状态?

如何在asp.net中的GridView中检查复选框列的状态

模型中的ASP.NET CORE DI

在 Laravel 中搜索主模型关系

如何测试所有ASP.NET Core控制器依赖注入是否有效?

在Sequelize中如何从包含模型的主模型中返回结果?

如何检查SSHD是否有效?

如何检查len是否有效

如何通過數據庫優先方法更新asp.net中的模型,同時保持一些以前的方法有效

检查字符串是否为有效的RegEx模式VB.NET

检查用户是否在ASP.NET Core中登录

状态存储在Actor模型(Akka.net)中的什么位置?

类 C# (.NET Core) 中具有“给定值”(有效值列表)的状态字段

如何检查硒中的表单元素有效性状态