我有一個非常基本的web應用程序,顯示錶格的內容。用戶可以通過點擊鏈接來改變一些參數。 爲簡化起見,我們只考慮一個簡單的例子,即用於排序行的列的名稱。MVC視圖直接與模型交互 - 好還是壞?
用戶可以單擊列或從右側欄選擇列的名稱以更改排序。 我使用<option>
元素來顯示可用列名稱的列表。
從Model
對象直接取這些名字是正確的,還是我應該以某種方式從Controller
傳遞它們?這是代碼現在
<select>
@{
// get list of all properties names
List<string> EtlProceduresNames = (((new MIPortal.Models.EtlProcedure()).GetType().GetProperties()).Select(item => item.Name)).ToList();
// display an option item for each property name
foreach (string EtlProceduresName in EtlProceduresNames) {
<option [email protected] >@Html.DisplayName(EtlProceduresName)</option>
}
}
</select>
這樣,View
與Model
直接交互。這是一個概念錯誤嗎?我是否應該將該代碼放在Controller
上,然後將名稱列表存儲在ViewBag
對象上?
你不想打破觀念mvc模式的所有邏輯都會在控制器中存儲它,並將模型傳遞到視圖中,網絡中有很多示例。 – DarkVision