2011-01-11 39 views
1

我無法讓ModelUpdate或TryModelUpdate在我的代碼中工作。MVC 2.0 C#ModelUpdate不會更新

我使用MVC在運行ASP.Net配置工具時創建的默認角色管理器和登錄系統。我想要做的是在Users表中添加另一列,以便我可以記錄我的用戶是否也是客戶。所以我想在那裏記錄他們的CustomerID。

我使用ADO實體數據模型生成基於我的數據庫的所有模型代碼。它爲我想更新的領域創建的代碼是在這裏:

public string CustomerID 
    { 
     get 
     { 
      return this._CustomerID; 
     } 
     set 
     { 
      this.OnCustomerIDChanging(value); 
      this.ReportPropertyChanging("CustomerID"); 
      this._CustomerID = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value, true); 
      this.ReportPropertyChanged("CustomerID"); 
      this.OnCustomerIDChanged(); 
     } 
    } 
    private string _CustomerID; 
    partial void OnCustomerIDChanging(string value); 
    partial void OnCustomerIDChanged(); 

在我的控制器中我試着用這個代碼來更新客戶ID字段:

   var userToUpdate = dbu.aspnet_Users.First(u => u.UserName == User.Identity.Name); 
       UpdateModel(userToUpdate, new string[] { "CustomerID"}, txtID); 
       dbu.SaveChanges(); 

,但我得到一個錯誤說超載方法有一些無效的參數。

我得到的問題是分配txtID到基於錯誤的CustomerID,但最新的正確方法呢?

如果我需要添加更多信息,請讓我知道。

回答

0

我想通了。 Apparrent ModelUpdate不會讓我傳入自定義數據,它需要從Form集合中傳入。所以使用UpdateModel(userToUpdate, new string[] {"CustomerID"}, form.ToValueProvider());工作。