我似乎无法使用以下部分视图进行客户端验证.此视图位于父视图中的divTSettings div内.从stackoverflow和其他网站尝试了很多东西,似乎没什么用.有任何想法吗?
<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 src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
@using (Ajax.BeginForm("CreateT", "TAdmin", null,
new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divTSettings"},
new { id = "CreateTForm" }))
{
<div>
<label>Name:</label>
<input type="text" name="tName" id="tName"/>
@Html.ValidationMessage("tName")
<input type="submit" value="Submit"/>
</div>
}
<script type="text/javascript">
$(function() {
$('#CreateTForm').validate({
rules: {
tName: {
required: true
}
},
messages: {
tName: {
required: 'Name required'
}
}
});
$("#CreateTForm").removeData("validator");
$("#CreateTForm").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("#CreateTForm");
});
</script>
Run Code Online (Sandbox Code Playgroud) 我无法找到一个Kendo + MVC Web API的示例,其中post/update方法返回验证错误.看起来没有Kendo扩展可以使以下代码工作.
public HttpResponseMessage Post([ModelBinder(typeof(Prototype.WebApi.ModelBinders.DataSourceRequestModelBinder))][DataSourceRequest] DataSourceRequest request, User user)
{
if (this.ModelState.IsValid)
{
//save
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState.ToDataSourceResult());
}
Run Code Online (Sandbox Code Playgroud)
因此,在此上下文中的ModelState是System.Web.Http.ModelBinding.ModelStateDictionary和Kendo扩展期望System.Web.Mvc.ModelStateDictionary.
那么将ModelState错误从Web API返回到Kendo的最佳方法是什么?