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