为什么这会考虑不好的做法?或者是吗? (ASP.Net)
这段代码会被视为不良做法:
<div id="sidebar"> <% =DisplayMeetings(12) %> </div> 这是我工作过的一个小型网络应用程序的default.aspx代码片段.它运行得非常好,运行速度非常快,但是一如既往,我知道只是因为它有效,并不意味着它没问题. 基本上,DisplayMeetings子例程输出一堆格式化的HTML(实际上是无序列表),没有格式化,只需要必要的html,然后我的CSS执行所有必要的格式化. 用于生成列表的数据来自SQL服务器数据库(该参数控制要返回的行数),我使用存储过程和datareader进行快速访问.这使我的前端非常简单,干净,imho,让我在一个单独的模块中完成VB或C#的所有工作. 我当然可以使用数据中继转发器(可能还有6种或更多其他方法)来完成同样的事情,但它们会更好吗?除了失去VS2010的设计时功能? 解决方法
您的方法唯一“错误”是它混合了代码和显示,您通常希望尽可能避免.如果你必须有一个程序生成的HTML部分(因为它只是很难用控件或其他),创建一个控件来负责生成该HTML并将其嵌入包含它的较大页面/控件中.
两者都在某种程度上.也没有. 使用<%= foo%> ;;没有任何直接“错误”;如果有,它将不是框架的一部分.它的“错误”在于它设置了一个你不一定想要的双向依赖.您的HTML标记依赖于并且必须了解代码隐藏.它必须调用该方法,而该方法又专用于标记而不是其他任何方法.如果要更改输出,可能必须更改方法,标记或两者. 我想说的是,你正在做的事情使你的代码不易维护,下次打开引擎盖时修改的灵活性会降低. 如果这是解决问题的唯一方法,那么这是唯一的方法,而且没有任何问题.但是,如果可能的话,通常应该避免这种情况. 我怎么做的?坦率地说,这取决于具体情况.如果我可以使用带有数据绑定的标准组件,我就已经这样做了.这总是首选.如果HTML太复杂而无法使用组件,我会使用Literal控件作为标记的占位符,并在单独的组件中生成标记 – 可能是用户控件. 重点是标记对用于生成其他标记的方法一无所知,它只是说“东西在这里”并依赖于其代码隐藏来处理决定放入哪个标记. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在asp.net mvc中的RedirectToAction用法
- asp.net-mvc – ASP.Net MVC – 处理不好的URL参数
- 如何在asp.net mvc 3中禁用浏览器缓存?
- asp.net-mvc – ModelState.IsValid是假的 – 但是哪一个 –
- ef-code-first – 如何通过使用Identity ASP.NET MVC的代码
- asp.net-mvc-3 – 在C#中将MetadataType添加到派生类
- asp.net – AttachDbFilename的问题是什么
- ASP.NET MVC之如何看待内置配置来提高性能优化(四)
- asp.net – 通过Ajax Post – MVC3更新模型更改视图
- asp.net – 在App_Code目录中调试长编译时间
- asp.net – IIS HTTP错误500.19
- asp.net-mvc-3 – 增加ASP.NET MVC 3中的超时值
- asp.net – 在生产服务器上运行EF迁移的最佳方法
- asp.net – 什么是global.asax用于?
- asp.net – 模拟无法正常工作 – 网络共享
- asp.net-mvc – 什么是Razor中的ViewBag.Title?
- asp.net-mvc – 什么是强类型的视图在ASP.NET MV
- asp.net-mvc – ASP.NET MVC查看引擎解析顺序
- asp.net-mvc – ASP.NET MVC安全建议
- asp.net-mvc-3 – MVC3 – 类型double与前导零的