2010-09-19 56 views
0

更改模型中的單個值時,哪種方法更可取?美學和性能方面。更改控制器中模型屬性值的更好方法是什麼

看起來乾淨(雖然再次推動整個模型的View的開銷):

ModelState.Remove("Name"); 
guestResponse.Name = "John"; 
return View(guestResponse); 

看起來高性能:

ModelState["Name"] = new ModelState { Value = new ValueProviderResult("Paul", null, null) };     
return View(); 

如果改變模型狀態字典是高性能和能做到這...

ModelState["Name"] = "George"; 

...我將通過fi第一個代碼(與Removereturn View(guestResponse)),但不幸的是,ModelState需要分配ModelState和ValueProviderResult。我看起來很醜陋。

在控制器中更改模型的屬性值時,您使用哪一個?

+0

我投票表現可讀性,因爲我不認爲這裏會有明顯的性能差異。你並不需要再「推」一些東西到視圖中去。您正在給視圖提供一個不同的對象引用來查看,但視圖仍然必須呈現,無論如何。 – Ryan 2010-09-19 17:37:18

回答

0

模型屬性通常從請求值綁定。因此,如果我需要在控制器操作中更改模型值,我只需使用正確的請求字符串調用此操作,這樣我就不必在控制器內執行任何操作。但要回答你的問題,這兩種方法都會表現良好,使用哪種方法並不重要。

相關問題