我有一个正在处理的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