2010-08-12 48 views
4

當爲類似的導航小部件實現助手擴展到this article中描述的助手擴展時,我注意到我的HTML現在綁定在C#代碼中,所以如果我想重新皮膚該網站的新菜單控件需要稍微不同的標記(例如<ul class="foo">...</ul>或嵌套<li>標記的不同類名稱)我現在必須編輯輔助擴展和視圖。ASP.NET MVC助手擴展和關注點分離

使用助手擴展更快更容易,但這是否違反了關注點分離?你有什麼維護這些代碼的經驗?我對微軟MVC相當陌生,所以如果我在這裏錯過了一些觀點,請原諒我。

回答

2

一個精心設計的HTML助手應該是多功能的,並且對於如何構建它的HTML有非常寬泛的意見。您可以爲擴展方法添加可覆蓋的選項,以便渲染可根據需要進行配置。如果您有新的要求,並且您的現有幫手不夠靈活,請對其進行擴展以適應新的要求。

1

我認爲你是對的,並且發現了類似的東西。現在對於未來可能出現的痛苦,「如果」你需要改變事情,現在更快更容易。你可能會讓你的「幫手」在它使用的模板中閱讀,所以你可以改變它,重新啓動網絡應用程序,看看你的變化出現。但是,這也增加了複雜性。我會說很多敏捷說現在做更容易/更快的東西,並且明白將來如果你的需求發生變化,然後再重新審視它。誰知道,它可能永遠不會發生。

+1

我同意現在有80%的工作解決方案比100%的解決方案需要額外幾天但可能永遠不需要更好。敏捷對清理思維非常有用。在我的情況下,我一定會需要用幾種方法來表達它。我設置了一個Helper函數,該函數接受可以正常工作的樣式參數。儘管編譯後的類中生成的HTML仍然不完全適用,但我們將看到它隨着時間的推移如何運作。感謝您的POV! – rargie 2010-08-13 15:29:30