2014-01-27 39 views
0
public class Page 
{ 
[Remote("CheckDuplicate", "Home", ErrorMessage = "Name already taken")] 
public string Name { get; set; } 
} 

並在控制器,我返回基於JsonResult數據「檢查」的結果如下:如何處理模型網格編輯中的遠程屬性? ASP.Net MVC3

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)方法

回答

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