gpt4 book ai didi

.net - Asp.Net MVC : Server Controls vs Html class to render controls?

转载 作者:行者123 更新时间:2023-12-01 07:49:52 25 4
gpt4 key购买 nike

渲染这样的控件有什么好处:

<% Html.RenderPartial("MyControl") %> or
<%=Html.TextBox("txtName", Model.Name) %>

通过网络表单样式:
<uc1:MyControl ID=MyControl runat=server />

我知道性能可能是一个原因,因为不需要创建对象,但有可能从代码中调用它只是为了执行一些基本的渲染逻辑可能非常有用。

如果不鼓励这样做,那么您应该如何处理这种情况:
  • 您需要有条件地使控件可见,并且不想用呈现逻辑填充 HTML。
  • 您有 <input type="text" value="<%= Model.Name %>" />但您需要检查 Model 是否为空,因为否则会引发 NullPointerException。

  • [编辑] 我在开始使用 ASP MVC 时问过这个问题,现在我看到了 Cristian 回答中 MVC 方式的优点。

    最佳答案

    这有几个原因。 “传统” ASP.NET WebForm 控件封装了 MVC 应用程序的 Controller 和 View 方面,这将违反该模式。此外,通过使它们成为扩展方法,您可以获得很好的能力,例如能够将它们与您自己的实现交换出来并交换出来进行测试

    Phil Haack(ASP.NET MVC 的项目经理)在接受 Herdering Code 播客采访时谈到了这一点

    第 24 集:Phil Haack 谈 ASP.NET MVC Beta 版(第 1 部分)

    http://herdingcode.com/?p=75

    第 24 集:Phil Haack 谈 ASP.NET MVC Beta 版(第 2 部分)

    http://herdingcode.com/?p=82

    关于.net - Asp.Net MVC : Server Controls vs Html class to render controls?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/271742/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com