如何在模型网格编辑上处理远程属性? ASP.Net MVC3

时间:2014-01-27 05:02:58

标签: asp.net-mvc asp.net-mvc-3 telerik telerik-mvc

public class Page
{
 [Remote("CheckDuplicate", "Home", ErrorMessage = "Name already taken")]
 public string Name { get; set; }
}

在控制器中,我将根据“检查”结果返回JsonResult数据,如下所示:

public JsonResult CheckDuplicate(string Name )
{
  var result = db.abc.Where(a => a.Name == Name ).Count() == 0;
  return Json(result, JsonRequestBehavior.AllowGet);
}

这在添加新名称时工作正常,但问题是,它限制我编辑,因为它正在检查相同的查询。 我正在使用Telerik Grid ASP.NET MVC并使用(GridEditMode.PopUp)方法

1 个答案:

答案 0 :(得分:0)

在您的代码中进行这些修改。

public class Page
{
    [DefaultValue(0)]
    public int ID { get; set; }
    [Remote("CheckDuplicate", "Home", AdditionalFields = "ID", ErrorMessage = "Name already taken")]
    public string Name { get; set; }
}

并在控制器中

public JsonResult CheckDuplicate(string Name, int Id)
{
  var result = db.abc.Where(a => (Id == 0) ? (a.Name == Name && a.ID != Id) : (a.Name == Name)).Count() == 0;
  return Json(result, JsonRequestBehavior.AllowGet);
}
  

您可以使用更多其他字段,并用逗号分隔它们。   例如:AdditionalFields =“ID,ID2