我有一個正在處理的Web應用程序,我想避免視圖中if/elseif/else的混亂,並且爲了有條件地包含在視圖中而有太多獨立的ascx文件。有沒有辦法阻止呈現MVC視圖的純文本部分?
我想要做的是建立某種形式的簡單類的作品,像這樣(的實例證實想什麼,我來實現)
<% using(RequiresAccessTo.Feature(Features.FancyStuff)) { %>
Special content for users
<% } %>
如果用戶確實不有訪問該功能,該類將呈現註冊鏈接。我知道我可以簡單地使用if/else,但根據訪問級別,else塊的內容可以是2-3種不同的標準響應之一,並且該機制將用於網站周圍的無數地方。
如果有辦法簡單地阻止用戶的特殊內容完全呈現,這意味着我可以使網站上的模板非常易於維護。
這是部分視圖(即.ascx)的用途。不知道你爲什麼不想使用它。您可以將參數傳遞到分部視圖,就像使用'RequiresAccessTo.Feature'示例一樣。你也可以考慮編寫一個擴展方法,但這需要在C#代碼中進行大量的HTML生成,這通常是不可取的。 – 2010-10-12 12:56:52
實際上不是局部視圖嗎?說你想在「某種簡單的課堂上」這樣做是雙重行爲。這正是一種觀點。 – spender 2010-10-12 13:09:18
@Kirk - 據我所知,在我的情況下,我最終會爲每個有問題的aspx文件提供10,20,30或更多的部分視圖。我正在尋找一種解決方案,它能夠:(a)停止正在討論的aspx文件被分割成大量的ascx文件,並且(b)停止代碼與if/elseif/else塊之間的spaghetti。 – 2010-10-12 13:54:00