我发现自己在我的视图中编写了很多代码,看起来像下面的代码.在这种情况下,我想为新手添加一些解释性HTML,为专家用户添加不同的HTML.
<% if (ViewData["novice"] != null ) { %>
some extra HTML for a novice
<% } else { %>
some HTML for an expert
<% } %>
Run Code Online (Sandbox Code Playgroud)
这是表示逻辑,因此它在视图与控制器之间是有意义的.然而,它变得非常难看,特别是当ReSharper想要移动所有支撑以使其更加丑陋时(有没有办法将其关闭以用于视图?).
我的问题是这是否合适,还是应该将控制器分支到两个单独的视图?如果我做两个视图,我将有很多重复的HTML来维护.
或者我应该使用共同的部分视图来共享两个单独的视图?
理想情况下,这种逻辑将在视图模型中处理,并且视图应该只渲染模型。
所以你的看法可能是这样的:
<%= ViewData["helptext"] %>
Run Code Online (Sandbox Code Playgroud)
你在控制器中的逻辑将是这样的:
ViewData["helpText"] = isNovice ? noviceText : expertText;
Run Code Online (Sandbox Code Playgroud)
这样你就可以将该逻辑推回到控制器并保持你的视图漂亮和干净
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |