我公司的大部分Web编程背景都是PHP,因此ASP.NET MVC是我们最新的Web应用程序的合理选择,它也需要作为单独的Winforms应用程序的后端工作.然而,我们一直在寻找自己走在我们通常在php中遵循的道路 - 回应大量条件输出的标签.这是ASP.NET MVC中的一个坏主意吗?
例如,没有Response.Write:
<%if (OurUserSession.IsMultiAccount)
{%>
<%=Html.ActionLink("SwitchAccount", "Accounts", "Login") %><span>|</span>
<%}%>
Run Code Online (Sandbox Code Playgroud)
使用Response.Write:
<%if (OurUserSession.IsMultiAccount)
Response.Write (Html.ActionLink("Swith Account", "Accounts", "Login") + "<span>|</span>");
%>
Run Code Online (Sandbox Code Playgroud)
这里的差异相当小,但有时我们的视图逻辑变得更复杂(非常复杂的视图逻辑,即除了布尔值之外,我们只是卸载到控制器).第二个似乎更容易阅读,但我想看看是否有任何关于此事的想法.
正如Mehrdad所说,与之Response.Write()相比,没有使用的背后<%= %>.但是,如果您希望使代码更具可读性,可以使用扩展方法:
public static string WriteIf(this HtmlHelper helper, bool condition, string tag) {
return condition ? tag : "";
}
Run Code Online (Sandbox Code Playgroud)
哪个会像这样使用:
<%= Html.WriteIf(UserSession.IsMultiAccount,
Html.ActionLink("Swith Account", "Accounts", "Login") + "<span>|</span>") %>
Run Code Online (Sandbox Code Playgroud)
我想,哪个更容易阅读,这是一个品味问题.
| 归档时间: |
|
| 查看次数: |
674 次 |
| 最近记录: |