2011-10-28 34 views
0

我在asp.net mvc 3中看到了很多編輯動作的例子,這就是我困惑的原因。例如,如何工作UpdateModel和TryUpdateModel方法?或者如果我想更新並非所有字段,如何實現編輯操作?在asp.net中實現編輯動作mvc 3

任何人都可以給我一個關於在asp.net 3中實現編輯動作的鏈接嗎?

回答

1

只更新所需字段的最佳方法是爲其創建單獨的視圖模型。例如,假設你有用戶類這樣

public class User 
{ 
    public int Id {get;set;} 
    public string UserName {get;set} 
    public bool IsAdmin {get;set;} 
} 

而且假設你不想讓用戶的供應值IsAdmin財產。你創建一個這樣(無IsAdmin場)視圖模型

public class EditUserViewModel 
{ 
    public int Id {get;set;} 
    public string UserName {get;set} 
} 

而編輯動作假的東西

public ActionResult Edit(EdituserViewModel model) 
{ 
    If(ModelState.IsValid) 
    { 
     User user = _repository.GetUser(model.Id); 
     user.UserName = model.UserName; 
     _repository.Update(user); 
     return RedirectToAction("Index"); 
    } 
    return View(model); 
} 

這樣,有沒有方法可行,從客戶端提供IsAdmin。您可能還想看看AutoMapperJimmy Bogard's blog將視圖模型映射到域模型。 Jimmy在asp.net mvc中獲得了關於使用ViewModels和AutoMapper的文章。

+0

UpdateModel和TryUpdateModel如何工作?他們使用哪個數據提供者?以及如何將EdituserViewModel與視圖綁定? – Alexandre

+0

@model的視圖應該是EditUserViewModel,並且通常會爲其生成編輯器。我不瞭解數據提供者,你的意思是價值提供者嗎? UpdateModel和TryUpdate模型獲取它們執行綁定的初始對象 – archil

+0

在何處閱讀UpdateModel和TryUpdate模型綁定?你能給我任何鏈接嗎?我沒有發現任何關於它的事情。 – Alexandre