加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET中的Response.Write是一个坏主意吗?

发布时间:2020-12-16 07:21:20 所属栏目:asp.Net 来源:网络整理
导读:我公司的大部分Web编程背景都是 PHP,因此ASP.NET MVC是我们最新的Web应用程序的合理选择,它也需要作为单独的Winforms应用程序的后端工作.然而,我们一直在寻找自己走在我们通常在php中遵循的道路 – 回应大量条件输出的标签.这是ASP.NET MVC中的一个坏主意吗
我公司的大部分Web编程背景都是 PHP,因此ASP.NET MVC是我们最新的Web应用程序的合理选择,它也需要作为单独的Winforms应用程序的后端工作.然而,我们一直在寻找自己走在我们通常在php中遵循的道路 – 回应大量条件输出的标签.这是ASP.NET MVC中的一个坏主意吗?

例如,没有Response.Write:

<%if (OurUserSession.IsMultiAccount)
        {%>
        <%=Html.ActionLink("SwitchAccount","Accounts","Login") %><span>|</span>
      <%}%>

使用Response.Write:

<%if (OurUserSession.IsMultiAccount)
          Response.Write (Html.ActionLink("Swith Account","Login") + "<span>|</span>");
      %>

这里的差异相当小,但有时我们的视图逻辑变得更复杂(非常复杂的视图逻辑,即除了布尔值之外,我们只是卸载到控制器).第二个似乎更容易阅读,但我想看看是否有任何关于此事的想法.

解决方法

正如Mehrdad所说,使用Response.Write()与<%=%>相比没有任何后盾.但是,如果您希望使代码更具可读性,可以使用扩展方法:

public static string WriteIf(this HtmlHelper helper,bool condition,string tag) {
    return condition ? tag : "";
}

哪个会像这样使用:

<%= Html.WriteIf(UserSession.IsMultiAccount,Html.ActionLink("Swith Account","Login") + "<span>|</span>") %>

我想,哪个更容易阅读,这是一个品味问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读