Jquery dialog partial view server side validation on Save button click

后端 未结 2 1212
萌比男神i
萌比男神i 2020-11-30 10:40

I have a table that displays data. Each row of table has Edit button. When edit button is clicked a jquery dialog appears with Form for editing the user info and save and ca

相关标签:
2条回答
  • 2020-11-30 11:19

    Hi without writing any Jscript we can us inbuilt unobstrusive features. as below.

    Model

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

    Partial View

        @Html.TextBoxFor(model => model.NumberOfPosters, new { style="width:150px;"})
         @Html.ValidationMessageFor(model => model.NumberOfPosters)
    

    0 讨论(0)
  • 2020-11-30 11:26

    You should try unobstrusive Client side Validation Example

    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;
    });
    

    View

    <div id="formContainer" data-url="@Url.Action("ActionName", "ControllerName", 
                                                 new { area = "Area Name" })"></div>
    <input id="BTN" type="button" value="Button" />
    

    Model

    public class SampleModule
    {
        [Required]
        public String MyName { get; set; }
    }
    

    Partial View

    @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" />        
    }
    

    References

    <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>
    
    0 讨论(0)
提交回复
热议问题