1

我的问题是,当我通过 ajax 调用加载 div 的内容时,客户端模型验证不起作用。

我从 ajax 调用返回的部分视图是一个包含 MemberInfo 字段并使用 MemberModel 的视图。

<div id="wizard">
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "wizard-form"}))
{
    <div data-bind="with: memberModel()">
        //content replaced thru ajax call
        <div id="wizard-content">
        </div>
    </div>
}
</div>

还使用 javascript 模型对我的部分视图上的文本绑定使用敲除。

var memberModel= ko.observable(@Html.Raw(Json.Encode(Model))),

我将 MemberModel 发布到从 ajax 调用的控制器方法中,该方法返回 MemberInfo 部分视图:

    var data = ko.toJSON(memberModel());

    $.ajax({
        url: url,
        type: "POST",
        data: data,
        contentType: "application/json",
        traditional: true,
        success: function (data) {
            if (data != "" && data != null) {
                $("#wizard-content").html(data);
                ko.applyBindings(memberModel, document.getElementById("wizard"));
            }
        }
    });

MemberModel 就像:

public class MemberModel
{        
    public int MemberID { get; set; }

    [Required]
    [MaxLength(20)]
    public string MemberName { get; set; }

    [DisplayName("First Name")]
    [RegularExpression(@"^[a-zA-Z\s.,'-]{2,50}$"]
    [Required]
    public string FirstName { get; set; }

    [DisplayName("Last Name")]
    [RegularExpression(@"^[a-zA-Z\s.,'-]{2,50}$"]
    [Required]
    public string LastName { get; set; }

}

加载部分视图的内容后,我的淘汰赛绑定工作正常。但是表单的模型验证不适用于呈现的视图。

4

0 回答 0