[Required(ErrorMessage = "*")]
[DisplayName("摄影师")]
[Remote("GetUser", "Validate",ErrorMessage = "用户名已经存在!")]
public string UserName
{
get
{
return this._UserName;
}
set
{
if ((this._UserName != value))
{
this.OnUserNameChanging(value);
this.SendPropertyChanging();
this._UserName = value;
this.SendPropertyChanged("UserName");
this.OnUserNameChanged();
}
}
}没错,这个确实注册的时候验证用户名存在, 但现在想要修改信息,在Edit视图里 也同样会验证,无法修改自己的信息,这个有木有办法? 还是用什么标签?  判断条件不一样的 

解决方案 »

  1.   

    Edit时UserName不需修改,就不要用@Html.EditorFor(model => model.UserName),直接@model.UserName显示为文本,就不会验证了
      

  2.   

    直接把username删除好了。既然这个不让用户修改,还显示在那里干嘛?
      

  3.   


    厄 不会验证了 但是 更新数据UserName字段会更新Null了    也多谢版主关注,这个不仅是用户名,其实是个例子,如果是手机号呢  注册时候不能一样,但是可以修改的,修改的时候也不能和其他人一样。 所以这个有木不别的办法,[Remote("GetUser", "Validate",ErrorMessage = "用户名已经存在!")] 这样肯定会注册和修改都有的 
      

  4.   

    保存的时候不要直接保存Model,用下边代码实现按需更新:var entry = db.Entry(db.Tables1.Attach(model));
    entry.Property("修改属性1").IsModified = true;
    entry.Property("修改属性2").IsModified = true;
    db.SaveChanges();
    详细参考:http://www.mzwu.com/article.asp?id=3381