2011-05-07 27 views
0

下面是我的控制器的一部分後,我的動作控制器沒有影響:的UpdateModel有發佈新的價值

[Authorize] 
    public ActionResult Edit(string IdAffaire) 
    { 
     Affaire affaire = this.repository.Retrieve(IdAffaire); 

     if (affaire == null) 
     { 
      return Redirect("~/"); 
     } 

     var model = new AffaireEditViewModel 
     { 
      Affaire = affaire, 
      Status = repository.RetrieveStatus().Select(o => new SelectListItem { Text = o.Name, Value = o.IdStatus.ToString() }).ToList(), 
     }; 

     return View(model); 
    } 

    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Edit(string idAffaire, AffaireEditViewModel model) 
    { 
     Affaire affaire = repository.Retrieve(idAffaire); 

     if (!ModelState.IsValid) 
     { 
      return this.Edit(model.Affaire.IdAffaire); 
     } 

     try 
     { 
      UpdateModel(affaire); 

      repository.Save(); 

      return RedirectToAction("Detail", "Affaire", new { idAffaire = idAffaire }); 
     } 
     catch 
     { 
      return View(affaire); 
     } 

    } 

下面是我的編輯視圖模型:

public class AffaireEditViewModel 
{ 
    public Affaire Affaire { get; set; } 

    public IEnumerable<SelectListItem> Status { get; set; } 
} 

下面是我的AFFAIRE模型:

public class Affaire 
{ 
    [Key] 
    public string IdAffaire { get; set; } 
    public string Title { get; set; } 
    public string Description { get; set; } 
    public string Username { get; set; } 
    public Int16? IdStatus { get; set; } 
    public Int16? IdLabel { get; set; } 
    // .... 
} 

我的問題是,在發佈新VALU時es在我的編輯視圖頁面中,名爲Edit的動作以正確的值很好地觸發(發佈),但UpdateModel(辦公室)沒有任何效果!任何幫助是極大的讚賞。

EDITED

我發現這個問題。

我需要從:

UpdateModel(affaire); 

要這樣:

UpdateModel(affaire,"Affaire"); 

我想這是因爲我的視圖模型是由幾件事情,我需要明確地告訴我的UpdateModel函數使用哪個元素。有人可以證實嗎?

回答

0

驗證 - 您的存儲庫是否保留對該模型實例的引用?我看到你打電話保存 - 但我沒有看到保存的實現,因爲你沒有傳入一個模型。

+0

正如你所見,我編輯我的問題,因爲我找到了解決方案。 – Bronzato 2011-05-07 16:42:09