加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 客户端表单验证不适用于MVC中的模态对话框

发布时间:2020-12-16 04:25:11 所属栏目:asp.Net 来源:网络整理
导读:我正在更改创建表单以成为模式对话框和 jquery Unobtrusive验证停止工作,不知道如何解决它. Index.cshtml有一个触发模式对话框的链接. a href="#" id="createCustomer"Create/a@section scripts{script type="text/javascript"$('#createCustomer').on('clic
我正在更改创建表单以成为模式对话框和 jquery Unobtrusive验证停止工作,不知道如何解决它.

Index.cshtml有一个触发模式对话框的链接.

<a href="#" id="createCustomer">Create</a>
@section scripts{
<script type="text/javascript">
$('#createCustomer').on('click',function () {
        $.get('/Customer/Create',function (data) {
            $('#modalContainer').html(data);
            $('#myModal').modal({});
        });
    });

Create.cshtml是局部视图.

@model Demo.Web.Models.CustomerVm
@using (Html.BeginForm("Create","Customer",FormMethod.Post,new { @id="createForm" }))
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>Customer</h4>
        <hr />
        @Html.ValidationSummary(true)

        <div class="form-group">
            @Html.LabelFor(model => model.Name,new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Name)
                @Html.ValidationMessageFor(model => model.Name)
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")        
}

在控制器上有一个actionmethod,它返回创建表单的局部视图.

public ActionResult Create()
    {
        return PartialView("Create");
    }

查看模态

public class CustomerVm
{
    [Required]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }        
}

在我把它变成一个模态对话框之前……一切正常,但现在我不知道如何修复它.如何使用对话框进行验证?显然,我不想在客户端脚本上重写验证规则..我想让它从视图模型中运行..谢谢.

解决方法

因为页面加载时表单没有添加到页面中,所以不引人注意的验证将不会提取它.有两种方法可以解决这个问题.

>在初始加载期间在页面上包含表单.这将导致表单被识别并进行验证.您可以将部分视图放入隐藏的div中.然后你的JavaScript将只显示模态对话框.>将表单添加到页面后,使用不显眼的验证手动注册表单.类似于$.validator.unobtrusive.parse(“#id-of-the-form”);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读