Shr*_*r S 0 action controller model asp.net-mvc-3 remote-validation
我在我的模型中使用远程属性来检查重复的页面标题如下
public class Page
{
[Remote("CheckDuplicate", "Page", ErrorMessage = "Title already taken")]
public string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在控制器中,我将根据" 检查 "结果返回JsonResult数据,如下所示:
public JsonResult CheckDuplicate(string Title)
{
var result = db.Pages.Where(a => a.Title == Title).Count() == 0;
return Json(result, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
这在Create动作中工作正常,但问题是,它限制了我编辑现有页面,因为它正在检查相同的查询.
如何解决这个问题呢?请建议我
您的问题看起来类似于:ASP.NET MVC 3远程验证允许原始值
我认为诀窍是在模型中使用AdditionalFields你的远程验证属性的参数,并将其与视图中的隐藏字段相结合 - 就像上面的StackOverflow帖子中所建议的那样.然后,您可以将"initial"值与新值一起发送到远程验证方法,并使用这两个参数进行唯一性检查.
另一个如何解决这个问题的例子可以在这里找到:https://stackoverflow.com/a/4756796/700926
该文档AdditionalFields可以在这里找到:http://msdn.microsoft.com/en-us/library/system.web.mvc.remoteattribute.additionalfields(v=vs.98).aspx
| 归档时间: |
|
| 查看次数: |
2759 次 |
| 最近记录: |