Jquery对话框保存时部分查看服务器端验证按钮单击

Jquery对话框保存时部分查看服务器端验证按钮单击,jquery,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,asp.net-mvc-2,Jquery,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Asp.net Mvc 2,我有一个显示数据的表。表格的每一行都有编辑按钮。单击“编辑”按钮时,将显示一个jquery对话框,其中包含用于编辑用户信息以及“保存和取消”按钮的表单。窗体只是局部视图按钮是局部视图的一部分 <button name="button" class="button" id="editCurrentRow" onclick="EditCurrentRow(@item.ID); return false;"> $("#editResult").dialog({ title: 'E

我有一个显示数据的表。表格的每一行都有编辑按钮。单击“编辑”按钮时,将显示一个jquery对话框,其中包含用于编辑用户信息以及“保存和取消”按钮的表单。窗体只是局部视图按钮是局部视图的一部分

<button name="button" class="button" id="editCurrentRow" onclick="EditCurrentRow(@item.ID); return false;">

$("#editResult").dialog({
    title: 'Edit Admin',
    autoOpen: false,
    resizable: false,
    height: 500,
    width: 600,
    show: { effect: 'drop', direction: "up" },
    modal: true,
    draggable: true,
    open: function (event, ui) {
        $(this).load('@Url.Action("EditAdmin", "AdminSearchResult")', { id: 1 , isEdit : true }); // pass par from function EditCurrentRow(par) in pacle of 1

    },
    close: function (event, ui) {
        $(this).dialog('close');
    }
});
我认为对话框中的任何按钮单击方法都应该是ajax化和json化的。所以我试着做了以下几点

<script src="../../Scripts/jquery-1.4.4.js" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript">  </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {

    $("#SubmitButton").click(function () {

        var id = $('#txtID').val();
        var lName = $('#txtLastName').val();
        var mName = $('#txtMiddleName').val();
        var fName = $('#txtFirstName').val();
        var uName = $('#txtUserName').val();
        var email = $('#txtEmail').val();
        var uRole = $('#ddlUserRoleName').val();
        var active = $('#chkActive').val();

        var admin = {
            ID: id,
            LastName: lName,
            MiddleName: mName,
            FirstName: fName,
            userName: uName,
            emailAddress: email,
            IsActive: active,
            UserRole: uRole
        }

        $.ajax({
            url: '@Url.Action("EditAdmin", "AdminSearchResult")',
            type: 'POST',
            dataType: 'html',
            contentType: "application/json; charset=utf-8",
            data: 'JSON.stringify(admin)',
            success: function (result) {
                alert(result);
                if (result.success) {
                    alert("Success");
                } else {
                    alert("Fail");
                    $('#editPanel').html(result);
                }
            }
        });
        return false;
    });
});   

</script

$(文档).ready(函数(){
$(“#提交按钮”)。单击(函数(){
var id=$('#txtID').val();
var lName=$('#txtLastName').val();
var mName=$('#txtmidlename').val();
var fName=$('#txtFirstName').val();
var uName=$('#txtUserName').val();
var email=$('#txtEmail').val();
var uRole=$('#ddlUserRoleName').val();
var active=$('#chkActive').val();
变量管理={
ID:ID,
姓氏:lName,
名称:mName,
名字:fName,
用户名:uName,
电邮地址:电邮:,
主动的:主动的,
用户角色:uRole
}
$.ajax({
url:'@url.Action(“EditAdmin”、“AdminSearchResult”),
键入:“POST”,
数据类型:“html”,
contentType:“应用程序/json;字符集=utf-8”,
数据:“JSON.stringify(admin)”,
成功:功能(结果){
警报(结果);
如果(结果、成功){
警惕(“成功”);
}否则{
警报(“失败”);
$('#editPanel').html(结果);
}
}
});
返回false;
});
});   

您应该尝试非结构化客户端验证示例

JQuery

$('#BTN').click(function () {
    var $formContainer = $('#formContainer');
    var url = $formContainer.attr('data-url');
    $formContainer.load(url, function () {
        var $form = $('#myForm');
        $.validator.unobtrusive.parse($form);
        $form.submit(function () {
            var $form = $(this);
            if ($form.valid()) {
                $.ajax({
                    url: url,
                    async: true,
                    type: 'POST',
                    data: JSON.stringify("Your Object or parameter"),
                    beforeSend: function (xhr, opts) {
                    },
                    contentType: 'application/json; charset=utf-8',
                    complete: function () { },
                    success: function (data) {
                        $form.html(data);
                        $form.removeData('validator');
                        $form.removeData('unobtrusiveValidation');
                        $.validator.unobtrusive.parse($form);
                    }
                });
            }
            return false;
        });
    });
    return false;
});
查看

<div id="formContainer" data-url="@Url.Action("ActionName", "ControllerName", 
                                             new { area = "Area Name" })"></div>
<input id="BTN" type="button" value="Button" />
@using (Html.BeginForm("Action Name", "Controller Name", FormMethod.Post, 
                       new { id = "myForm" }))
{
    @Html.LabelFor(i => i.MyName)
    @Html.TextBoxFor(i => i.MyName)
    @Html.ValidationMessageFor(i => i.MyName)
    <p id="getDateTimeString"></p>
   <input type="button" value="Button" />        
}
    @Html.TextBoxFor(model => model.NumberOfPosters, new { style="width:150px;"})
     @Html.ValidationMessageFor(model => model.NumberOfPosters)
局部视图

<div id="formContainer" data-url="@Url.Action("ActionName", "ControllerName", 
                                             new { area = "Area Name" })"></div>
<input id="BTN" type="button" value="Button" />
@using (Html.BeginForm("Action Name", "Controller Name", FormMethod.Post, 
                       new { id = "myForm" }))
{
    @Html.LabelFor(i => i.MyName)
    @Html.TextBoxFor(i => i.MyName)
    @Html.ValidationMessageFor(i => i.MyName)
    <p id="getDateTimeString"></p>
   <input type="button" value="Button" />        
}
    @Html.TextBoxFor(model => model.NumberOfPosters, new { style="width:150px;"})
     @Html.ValidationMessageFor(model => model.NumberOfPosters)
@使用(Html.BeginForm(“操作名”、“控制器名”、FormMethod.Post、,
新的{id=“myForm”})
{
@LabelFor(i=>i.MyName)
@Html.TextBoxFor(i=>i.MyName)
@Html.ValidationMessageFor(i=>i.MyName)

}
参考资料

<script src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js" type="text/javascript">
</script>

您好,不用编写任何Jscript,我们就可以使用内置的非结构化功能。 如下

型号

public class SampleModule
{
    [Required]
    public String MyName { get; set; }
}
    Public class Model{[Required(ErrorMessage = "Required.")]
   [Range(0, int.MaxValue, ErrorMessage = "Please enter a Number")]
   public int NumberOfPosters { get; set; }}
局部视图

<div id="formContainer" data-url="@Url.Action("ActionName", "ControllerName", 
                                             new { area = "Area Name" })"></div>
<input id="BTN" type="button" value="Button" />
@using (Html.BeginForm("Action Name", "Controller Name", FormMethod.Post, 
                       new { id = "myForm" }))
{
    @Html.LabelFor(i => i.MyName)
    @Html.TextBoxFor(i => i.MyName)
    @Html.ValidationMessageFor(i => i.MyName)
    <p id="getDateTimeString"></p>
   <input type="button" value="Button" />        
}
    @Html.TextBoxFor(model => model.NumberOfPosters, new { style="width:150px;"})
     @Html.ValidationMessageFor(model => model.NumberOfPosters)

如果您在控制台上看到任何内容,是否可以在chrome上打开此窗口,打开chrome开发工具并粘贴此消息?Pankaj感谢您的回答。所有这些更改都应该是局部视图,对吗?什么是var$form=$(“#myForm”);谁的id是myformI我是mvc的新手,所以请原谅我不太聪明的问题。因此,部分视图将如下所示:@using(Html.BeginForm(“Action Name”,“Controller Name”,FormMethod.Post,new{id=“myForm”})){@Html.LabelFor(i=>i.MyName)@Html.TextBoxFor(i=>i.MyName)@Html.ValidationMessageFor(i=>i.MyName)

}我已经完成了您的所有要求。按钮就是没有反应。对话的div是否正确。两个都试过了。不工作。将在周末再试,如果没有,我将留下评论。非常感谢你的帮助。祝你周末愉快。如果你的“添加”按钮使用默认的“提交”操作进行回发,这将不起作用。