C# 在ASP.NET MVC中插入剑道网格之前验证数据
当我添加新记录或修改现有行时,我希望在Action方法中验证新数据。如果输入的新值不在特定范围1-10内(或者如果现有值被修改为超出有效范围),我不希望插入/更新成功 我尝试了以下方法:C# 在ASP.NET MVC中插入剑道网格之前验证数据,c#,asp.net-mvc,kendo-ui,kendo-grid,kendo-asp.net-mvc,C#,Asp.net Mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,当我添加新记录或修改现有行时,我希望在Action方法中验证新数据。如果输入的新值不在特定范围1-10内(或者如果现有值被修改为超出有效范围),我不希望插入/更新成功 我尝试了以下方法: [AcceptVerbs(HttpVerbs.Post)] public ActionResult EditingInline_Create([DataSourceRequest] DataSourceRequest request, ProductViewModel product) {
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditingInline_Create([DataSourceRequest] DataSourceRequest request, ProductViewModel product)
{
if (product != null && ModelState.IsValid)
{
if (product.Price > 1 && product.Price < 10)
{
SessionProductRepository.Insert(product);
}
}
return Json(new [] { product }.ToDataSourceResult(request, ModelState));
}
[AcceptVerbs(HttpVerbs.Post)]
公共操作结果编辑行\u创建([DataSourceRequest]DataSourceRequest请求,ProductViewModel产品)
{
if(product!=null&&ModelState.IsValid)
{
如果(产品价格>1和产品价格<10)
{
SessionProductRepository.Insert(产品);
}
}
返回Json(new[]{product}.ToDataSourceResult(request,ModelState));
}
但是,当该方法返回时,将向网格中添加一个包含无效价格数据的新行我错过了什么?如何修复return语句来处理此情况 嗯,也许你可以参加剑道格网的“编辑”活动。请看这里的文档:好吧,也许你可以参加剑道格网的“编辑”活动。请参阅此处的文档:您可以调用grid.cancelChanges()以防止url中所述的数据源中的任何挂起的更改您可以调用grid.cancelChanges()以防止url中所述的数据源中的任何挂起的更改此Kendo UI博客文章可能会为您提供一些处理此问题的方法: 基本上,您可以向服务器上的ModelState错误集合添加错误:
ModelState.AddModelError("SomsField", "Some error message.");
然后KendoToDataSourceResult()
函数将把这些ModelState错误放入返回给客户端的JSON中的errors
集合中
在客户端,当服务器响应的错误集合中存在消息时,将调用数据源的错误函数
然后,您可以在DataSource error函数中处理错误。这篇Kendo UI博客文章可能会为您提供一些处理错误的方法: 基本上,您可以向服务器上的ModelState错误集合添加错误:
ModelState.AddModelError("SomsField", "Some error message.");
然后KendoToDataSourceResult()
函数将把这些ModelState错误放入返回给客户端的JSON中的errors
集合中
在客户端,当服务器响应的错误集合中存在消息时,将调用数据源的错误函数
然后可以在DataSource error函数中处理错误