Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务器端Blazor中单个EditForm中的多模型验证_C#_Asp.net Core_Blazor_Blazor Server Side - Fatal编程技术网

C# 服务器端Blazor中单个EditForm中的多模型验证

C# 服务器端Blazor中单个EditForm中的多模型验证,c#,asp.net-core,blazor,blazor-server-side,C#,Asp.net Core,Blazor,Blazor Server Side,我有一个表单,它在一个EditForm中绑定到三个相关的模型。我希望了解如何在同一个提交上验证它们。我已经成功地验证了一个模型,但是我没有看到任何关于如何验证多个模型的细节。想法 <EditForm OnValidSubmit="@Save" EditContext="@EditContext"> <div class="form-group"> <input class="form-control" type="t

我有一个表单,它在一个EditForm中绑定到三个相关的模型。我希望了解如何在同一个提交上验证它们。我已经成功地验证了一个模型,但是我没有看到任何关于如何验证多个模型的细节。想法

    <EditForm OnValidSubmit="@Save" EditContext="@EditContext">
    <div class="form-group">

                <input class="form-control" type="text" id="Title" @bind="@TargetUser.Title" />

                <InputText Id="OfficePhone" Class="form-control" @bind-Value="@TargetUser.OfficePhone"></InputText>
                <ValidationMessage For="@(() => TargetUser.OfficePhone)" />

                <input class="form-control" type="text" id="MiddleName" @bind="@TargetUser.MiddleName" />
        <div class="row row-padding">
            <h4>Seller Rates</h4>
        </div>
        <hr />
        <input type="number" step="0.01" id="HourlyRate" @bind="@UserRate.HourlyRate" class="form-control" />
        <input type="number" id="Salary" @bind="@UserRate.Salary" class="form-control" />
        <input type="number" step="0.01" id="OTRate" @bind="@UserRate.OTRate" class="form-control" />
        <input type="date" @bind="@UserRate.ValidFrom" id="ValidFrom" class="form-control"/>
        <input type="date" class="form-control" id="ValidTo" @bind="@UserRate.ValidTo" />

    <DataAnnotationsValidator />
    <ValidationSummary />
</EditForm>

卖方费率


这是一些代码的高度编辑示例。不打算显示实际情况。只是为了举例说明。

我想您在这里需要的是ObjectGraphDataAnnotationsValidator组件,它支持复杂类型的验证

这里有一个

Blazor团队提供的类定义和示例


希望这有助于

您只能使用单个模型。。。你是说复杂的类型吗?我会把答案贴出来,就好像你说的是一个复杂的类型…@enet我的意思是表单很复杂,我需要验证多个类型。请参见上面示例中的TargetUser和UserRate。两种不同的类型。我考虑的是创建一个“组合”类型,用作EditForm的模型,然后在提交时为各个类型创建单独的EFCore流程。想法?看这个:@enet请添加一个答案,这样我就可以给你打分了。这正是我想要的。我有一个类似的问题:我的表单绑定到两个不同的模型(请求和系统),我必须根据这两个模型进行验证。