我們在不同的地方在我們的網站上顯示不同視圖的汽車列表。例如:我們應該爲看起來幾乎相似的房源創建單獨的部分視圖嗎?
- https://jsfiddle.net/yxrveass/:圖像和汽車細節並排。
- https://jsfiddle.net/sa44zaz2/:汽車的細節來自汽車形象下方。
我們當前創建的這些即
@model IEnumerable<MVCDemo.Models.Cars>
@foreach (var car in Model)
{
@Html.Partial("_Car1", car); //Partial view when Image and car details side by side.
}
@model IEnumerable<MVCDemo.Models.Cars>
@foreach (var car in Model)
{
@Html.Partial("_Car2", car); //Partial view when Car details come just below the car image.
}
兩個部分觀點我看到這裏的問題是高昂的維護成本。明天,如果我們想要在UI中顯示更多字段,即城市,我們將不得不在_Car1和_Car2部分視圖上進行相同的更改。
我們可以以某種方式結合這兩個部分視圖的代碼,以便我們將一個cshtml文件中的所有汽車信息? (同時保持細微的設計差異,因爲它是)
你可以合併它們(例如,通過在.cshtml中使用策略性的'@ if'語句),但我不會。兩個地方添加一個字段並不是「高成本」,而是維持一個「完成所有事情」的複雜性。 –
這裏有太多的選擇,雖然有幾種最佳實踐方法可用於重構視圖,但這些方法只會鬆散地應用於這樣的自定義視圖,並且會因實現的更多細節而發生很大變化。對於這麼小的事情,只要做一些有用的事情,如果事情失控了,就會重構。 –