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

为什么这会考虑不好的做法?或者是吗? (ASP.Net)

发布时间:2020-12-16 09:57:57 所属栏目:asp.Net 来源:网络整理
导读:这段代码会被视为不良做法: div id="sidebar" % =DisplayMeetings(12) %/div 这是我工作过的一个小型网络应用程序的default.aspx代码片段.它运行得非常好,运行速度非常快,但是一如既往,我知道只是因为它有效,并不意味着它没问题. 基本上,DisplayMeetings子
这段代码会被视为不良做法:

<div id="sidebar">
  <% =DisplayMeetings(12)  %>
</div>

这是我工作过的一个小型网络应用程序的default.aspx代码片段.它运行得非常好,运行速度非常快,但是一如既往,我知道只是因为它有效,并不意味着它没问题.

基本上,DisplayMeetings子例程输出一堆格式化的HTML(实际上是无序列表),没有格式化,只需要必要的html,然后我的CSS执行所有必要的格式化.

用于生成列表的数据来自SQL服务器数据库(该参数控制要返回的行数),我使用存储过程和datareader进行快速访问.这使我的前端非常简单,干净,imho,让我在一个单独的模块中完成VB或C#的所有工作.

我当然可以使用数据中继转发器(可能还有6种或更多其他方法)来完成同样的事情,但它们会更好吗?除了失去VS2010的设计时功能?

解决方法

您的方法唯一“错误”是它混合了代码和显示,您通常希望尽可能避免.如果你必须有一个程序生成的HTML部分(因为它只是很难用控件或其他),创建一个控件来负责生成该HTML并将其嵌入包含它的较大页面/控件中.

is the “wrong” part,that the subroutine is returning HTML,or is it that I have a code-snippet executed from within the HTML markup?

两者都在某种程度上.也没有.

使用<%= foo%&gt ;;没有任何直接“错误”;如果有,它将不是框架的一部分.它的“错误”在于它设置了一个你不一定想要的双向依赖.您的HTML标记依赖于并且必须了解代码隐藏.它必须调用该方法,而该方法又专用于标记而不是其他任何方法.如果要更改输出,可能必须更改方法,标记或两者. 我想说的是,你正在做的事情使你的代码不易维护,下次打开引擎盖时修改的灵活性会降低. 如果这是解决问题的唯一方法,那么这是唯一的方法,而且没有任何问题.但是,如果可能的话,通常应该避免这种情况. 我怎么做的?坦率地说,这取决于具体情况.如果我可以使用带有数据绑定的标准组件,我就已经这样做了.这总是首选.如果HTML太复杂而无法使用组件,我会使用Literal控件作为标记的占位符,并在单独的组件中生成标记 – 可能是用户控件. 重点是标记对用于生成其他标记的方法一无所知,它只是说“东西在这里”并依赖于其代码隐藏来处理决定放入哪个标记.

(编辑:李大同)

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

    推荐文章
      热点阅读