Asp.net core 模式部分视图Asp.Net Core 3中没有验证

Asp.net core 模式部分视图Asp.Net Core 3中没有验证,asp.net-core,Asp.net Core,我使用模态并将部分视图加载到它,但如果我将字段保留为空,则在单击“提交”按钮后不会发生任何验证并关闭模态 我还在viewmodel中使用必需的注释。另外,当我单击submit时,它会在controller中调用action direct 我的问题:如何以模态形式显示验证消息 @节脚本{ 函数onFailureDefault(数据){ $(“#AddOrderDetailModalDiv”).valid() } 函数OpenAddOrderDetailTempItemOnSuccess(){ $(

我使用模态并将部分视图加载到它,但如果我将字段保留为空,则在单击“提交”按钮后不会发生任何验证并关闭模态

我还在viewmodel中使用必需的注释。另外,当我单击submit时,它会在controller中调用action direct

我的问题:如何以模态形式显示验证消息

@节脚本{
函数onFailureDefault(数据){
$(“#AddOrderDetailModalDiv”).valid()
}
函数OpenAddOrderDetailTempItemOnSuccess(){
$(#AddOrderDetailModalDiv”).modal(“show”);
}
函数AddOrderDetailTempItemOnComplete(){
$(“#AddOrderDetailModalDiv”).modal(“隐藏”);
}
}
@model OrderDetailViewModel
@使用(Html.BeginForm(“AddOrderDetailTempItem”、“Orders”、FormMethod.Post、new
{
id=“AddForm”,
@数据\u ajax=“true”,
@data\u ajax\u method=“post”,
@数据_ajax_update=“#OrderDetailList”,
@数据\u ajax\u failure=“onFailureDefault”,
@数据\u ajax\u complete=“AddOrderDetailTempItemOnComplete”
}))
{
@(Model.ID>0?“编辑产品”:“添加产品”)
&时代;
@Html.HiddenFor(m=>m.ID)
@DropDownListFor(m=>m.ProductId,Model.ProductsList,“”,htmlAttributes:new{@class=“select2 form control”})
@DropDownListFor(m=>m.Unit,Model.QuantityUnitsList,”,htmlAttributes:new{@class=“form control”})
接近
}

你的代码不完整,所以我提供了一个工作演示,你可以检查它

型号:

  public class Student
{        
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
}
@model Student

<div id="MyModal" class="modal fade" role="dialog">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header" >
                <h4 class="modal-title" >Update Role</h4>
            </div>
            <div class="modal-body">
                <form id="myform" method="post">
                    <div>
                        <label>Id</label>
                        <input asp-for="Id" />
                        <span asp-validation-for="Id" class="text-danger"></span>
                    </div>
                    <div>
                        <label>Name</label>
                        <input asp-for="Name" />
                        <span asp-validation-for="Name" class="text-danger"></span>
                    </div>
                    <button id="button" class="btn btn-default">Save</button>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>
<button id="showmodal" class="btn btn-danger">
Click
</button>
<div id="partical">
    <partial name="~/Views/Shared/_OrderDetailGridPartial.cshtml" />
</div>

@section scripts{
    <script>
        $("#showmodal").click(function () {
            $('#MyModal').modal('show');
        })
        $("#button").click(function (e) {
            e.preventDefault();
            var model = $('#myform').serialize();
            console.log(model);
            $.ajax({
                type: 'POST',
                url: 'home/index',
                async: false,
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                data: model,
                success: function (result) {
                    $('#partical').html(result);
                    $('#MyModal').modal('show');
                }
            });
        })
    </script>
}
 public IActionResult Index()
    {
        return View();
    }
  

    [HttpPost]       
    public IActionResult Index(Student student)
    {
        if (!ModelState.IsValid)
        {
            return PartialView("_OrderDetailGridPartial",student);
        }
        return View();
    }
\u OrderDetailGridPartial:

  public class Student
{        
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
}
@model Student

<div id="MyModal" class="modal fade" role="dialog">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header" >
                <h4 class="modal-title" >Update Role</h4>
            </div>
            <div class="modal-body">
                <form id="myform" method="post">
                    <div>
                        <label>Id</label>
                        <input asp-for="Id" />
                        <span asp-validation-for="Id" class="text-danger"></span>
                    </div>
                    <div>
                        <label>Name</label>
                        <input asp-for="Name" />
                        <span asp-validation-for="Name" class="text-danger"></span>
                    </div>
                    <button id="button" class="btn btn-default">Save</button>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>
<button id="showmodal" class="btn btn-danger">
Click
</button>
<div id="partical">
    <partial name="~/Views/Shared/_OrderDetailGridPartial.cshtml" />
</div>

@section scripts{
    <script>
        $("#showmodal").click(function () {
            $('#MyModal').modal('show');
        })
        $("#button").click(function (e) {
            e.preventDefault();
            var model = $('#myform').serialize();
            console.log(model);
            $.ajax({
                type: 'POST',
                url: 'home/index',
                async: false,
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                data: model,
                success: function (result) {
                    $('#partical').html(result);
                    $('#MyModal').modal('show');
                }
            });
        })
    </script>
}
 public IActionResult Index()
    {
        return View();
    }
  

    [HttpPost]       
    public IActionResult Index(Student student)
    {
        if (!ModelState.IsValid)
        {
            return PartialView("_OrderDetailGridPartial",student);
        }
        return View();
    }
测试结果


您的型号在哪里?您在模型上使用过数据注释吗?是的,我在模型中使用了必需的数据注释,我还更新了问题以包括modelHi@yinqiuThanks,但当我在父窗体中单击submit inside时,我在父窗体的模式窗体中(我更新了我的问题)其调用操作方法。