【发布时间】:2014-08-14 15:55:38
【问题描述】:
在我的 MVC 视图屏幕中,单击按钮时,我通过 $.ajax 进行 ajax 调用,它能够调用控制器的操作方法并将响应返回到成功事件中。
控制器操作方法的返回类型为 JsonResult 并返回 Json(object,AllowGEt)
我在_layout 文件中包含了 jquery 文件和验证文件。
问题: 问题是无法在客户端触发验证。
我已经在模型对象上包含了 - Required 注释和错误消息注释。
请指导我出了什么问题。
(在 BeginForm 和按钮作为 Submit 按钮和返回类型为 ActionResult 但没有 ajax 调用的调用操作方法中进行验证时工作正常。)
修改为包含代码:
在View 上的按钮点击事件:
<script type="text/javascript">
$("#btnJsonSubmit").click(function () {
var f = JSON.stringify(
{ 'IDValue': objIDValue };
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
url: '/cPreferences/InsertPreference',
data: f,
success: function () {
alert('Record saved successfully.');
$('select').prop('selectedIndex', 0);
},
failure: function (response) {
alert('f');
//console.log('error!!');
}
});
});
</script>
关于Controller的action方法:
[HttpPost]
public JsonResult InsertPreference(string IDValue)
{
///code to call services
return Json(l, JsonRequestBehavior.AllowGet);
}
查看模型对象
查看模型
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace ViewModel
{
public class CampusProgramPreferencesViewModel
{
[Required(ErrorMessage = "Selection is required")]
public IList<LookupItem> DataList { get; set; }
[Required(ErrorMessage = "Preference is required")]
public string Preference { get; set; }
}
}
Layout_cshtml
<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("~/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
【问题讨论】:
-
请添加您有问题的视图和操作代码
-
请使用详细代码查找更新的问题。
-
我测试了你的代码。它是正确的并且有效。检查你的浏览器控制台是否有 java 脚本错误
标签: jquery ajax asp.net-mvc asp.net-mvc-4 asp.net-mvc-validation