当前位置 : 主页 > 网络编程 > ASP >

Asp.Net MVC:Server Controls vs Html类来呈现控件?

来源:互联网 收集:自由互联 发布时间:2021-06-24
渲染这样的控件有什么好处: % Html.RenderPartial("MyControl") % or%=Html.TextBox("txtName", Model.Name) % 在Web表单样式: uc1:MyControl ID=MyControl runat=server / 我理解性能可能是一个原因,因为不需要创建任
渲染这样的控件有什么好处:

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

在Web表单样式:

<uc1:MyControl ID=MyControl runat=server />

我理解性能可能是一个原因,因为不需要创建任何对象,但是有可能从代码库中调用它只是为了做一些基本的渲染逻辑可能非常有用.

如果不鼓励这样做,那么你如何处理这种情况:

>您需要有条件地显示控件,并且您不希望使用渲染逻辑填充HTML.
>你有< input type =“text”value =“<%= Model.Name%>” />但是你需要检查Model是否为null,因为否则会引发NullPointerException.

[编辑]当我开始使用ASP MVC时我问过这个问题,现在我看到了像Cristian一样的MVC方式的优点.

在视图中执行空检查可能会导致长期悲痛.我解释MVC编程风格的方式是在控制器中准备视图数据,以便视图可以非常干净并且不会受到检查和条件的影响.

另一方面,如果需要遵循可能为空的关联,那么将该代码放在可重用的帮助器中是完全正确的,例如:

<%= Html.BindTextBox("txtName", Model, "Person.Name") %>
网友评论