Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET MVC中插入剑道网格之前验证数据_C#_Asp.net Mvc_Kendo Ui_Kendo Grid_Kendo Asp.net Mvc - Fatal编程技术网

C# 在ASP.NET MVC中插入剑道网格之前验证数据

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

当我添加新记录或修改现有行时,我希望在Action方法中验证新数据。如果输入的新值不在特定范围1-10内(或者如果现有值被修改为超出有效范围),我不希望插入/更新成功

我尝试了以下方法:

[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.");
然后Kendo
ToDataSourceResult()
函数将把这些ModelState错误放入返回给客户端的JSON中的
errors
集合中

在客户端,当服务器响应的错误集合中存在消息时,将调用数据源的错误函数


然后,您可以在DataSource error函数中处理错误。

这篇Kendo UI博客文章可能会为您提供一些处理错误的方法:

基本上,您可以向服务器上的ModelState错误集合添加错误:

ModelState.AddModelError("SomsField", "Some error message.");
然后Kendo
ToDataSourceResult()
函数将把这些ModelState错误放入返回给客户端的JSON中的
errors
集合中

在客户端,当服务器响应的错误集合中存在消息时,将调用数据源的错误函数

然后可以在DataSource error函数中处理错误