客户端validation无效
我实现了客户端validation,即Model
和HTML
指定的Required attributes
。 ValidationMesssage
用于.cshtml
并引用了JQuery
validation器,当我点击“ save button
时工作正常。 但是当我实现按钮的onClick event
和ajax调用时,validation似乎无法正常工作。 我尝试使用IsValid
但没有运气。
请找到以下代码。
调节器
[HttpPost] public ActionResult AddClient(ClientModel clientData) { var clientObj = new Metadata.Client.Service.Client(); string successMessage = string.Empty; clientObj.ClientType = new Metadata.Client.Service.ClientType(); clientObj.ClientName = clientData.Client.ClientName; clientObj.ClientCode = clientData.Client.ClientCode; clientObj.ClientType.ClientTypeId = clientData.ClientTypeSelectId; try { clientObj = clientData.AddNewClient(clientObj); } catch (Exception ex) { return new ContentResult { Content = ex.Message, ContentType = "application/json" }; } return new ContentResult { Content = successMessage, ContentType = "application/json" }; //return RedirectToAction("Index"); }
JQuery – 添加了以下引用。
$("#addForm").validate( { submitHandler: function (form) { var clientName = $('#Client_ClientName').val(); var clientTypeId = $('#ClientTypeSelectId').val(); var clientCode = $('#Client_ClientCode').val(); $.ajax({ type: "POST", async: false, url: "/Client/AddClient", cache: false, data: { "clientName": clientName, "clientTypeId": clientTypeId, "clientCode": clientCode }, dataType: "json", error: function (request) { alert(request.responseText); }, success: function (result) { //alert('Successfully Inserted Client'); $.ajax({ url: "/Client/ClientGrid", type: 'GET', datatype: 'json', success: function (data) { $('#grid').html(data); //alert('got here with data'); }, error: function () { //alert('something bad happened'); } }); $('#myClientDialogContainer').dialog('close'); } }); return false; } });
模型
public class Client { public int ClientId { get; set; } [Required(ErrorMessage = "Please Enter Client Name")] [Display(Name = "Client Name")] public string ClientName { get; set; } public ClientType ClientType { get; set; } public StatusType StatusType { get; set; } //[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [Required(ErrorMessage = "Please Enter Client Code")] [DataType(DataType.Text)] [Display(Name = "Client Code")] public string ClientCode { get; set; } //[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [DataType(DataType.Text)] [Display(Name = "Client Status Type Name")] public string ClientStatusTypeName { get; set; } //[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [DataType(DataType.Text)] [Display(Name = "Client Status Code Name")] public string ClientStatusCodeName { get; set; } [Display(Name = "Client Type Id")] public int ClientTypeId { get; set; } }
validation码
@Html.ValidationMessageFor(c => c.Client.ClientName) @Html.LabelFor(c => c.Client.ClientName, "Client Name :") @Html.TextBoxFor(c => c.Client.ClientName, new { style = "width:50%; height:20px;" }) @Html.ValidationMessageFor(m => m.ClientTypeSelectId) @Html.LabelFor(m => Model.Client.ClientType.ClientTypeName, "Client Type :") @Html.DropDownListFor(m => m.ClientTypeSelectId, (SelectList)ViewBag.clientTypeListCombo, " ", new { style = "width:52%" }) @Html.ValidationMessageFor(m => m.Client.ClientCode) @Html.LabelFor(m => m.Client.ClientCode, "Client Code :") @Html.TextBoxFor(m => m.Client.ClientCode, new { style = "width:50%; height:20px;" })
请任何人都可以帮忙。
单击按钮时,请尝试.submit()事件,而不是在单击按钮时提交表单。 将输入元素包装在html表单标记内。 您应该序列化表单并将其提交给服务器,而不是逐个获取输入值。
$('#myForm').submit(function (e) { // Prevent default submit for ajax e.preventDefault(); $.ajax({ /* Your ajax stuff goes here */ }); });
这样您就不会绕过validation。
- 在dataSource.read之后获取Kendo Grid中的记录数
- window.location或window.location.href没有更改所有浏览器MVC应用程序中的值
- ASP.NET MVC 4:无法修改jQuery Unobtrusive Ajax
- ASP.NET MVC 4 – 客户端validation不起作用
- ASP.NET MVC – JSON响应向我发送文件而不是更新jqueryUI
- Modelstate始终抛出无效的日期时间错误
- MVC DropDownList OnChange更新其他表单字段
- 0x800a1391 – JavaScript运行时错误:’jQuery’未定义 – MVC 4
- 如何插入jQuery代码? 未捕获的ReferenceError:$未在视图razor代码中定义