如何在asp.net中模仿局部视图?

时间:2011-03-03 23:10:01

标签: asp.net

我正在开发一个来自MVC背景的Asp.net网站(已经有一段时间了)。我如何模仿Asp.net中的部分视图?我是使用Web用户控件还是Web部件区域,还是其他?

4 个答案:

答案 0 :(得分:2)

ASP.NET实际上是ASP.NET Webforms和ASP.NET MVC的基础引擎。

如果您已经习惯了MVC,那么您应该使用ASP.NET MVC,其中部分视图是一等公民。

使用ASP.NET MVC

要使用一个,只需创建一个新的MVC项目,右键单击View文件夹中的共享文件夹,然后选择Add New View。从那里你可以选择部分视图。

如果必须使用Webforms

如果您遇到网络表单,那么您使用UserControls。 webforms模型并不能很好地转换为MVC范例,但UserControls是最接近的东西。

我认为webpart仅适用于Sharepoint ...忽略它们。

答案 1 :(得分:1)

用户控件是ASP.NET WebForms等同于ASP.NET MVC部分视图。

答案 2 :(得分:1)

我假设您使用的是ASP.NET网页而不是ASP.NET MVC,否则这不是问题。在webforms中,您可以使用UserControls(.ascx)来获得类似的结果。

使用用户控件的一个优点是,您可以通过在用户控件本身中公开公共属性和方法来直接与用户控件的详细信息进行交互。您可以使用户控件具有很大的灵活性,并且还具有由纯标记定义的大部分功能。

对于MVC中的部分视图,这实际上是不可能的。我无法想到你在MVC中使用局部视图的用户控件无法做到的任何事情。另一方面,有很多东西,部分视图不能用户控制。

在webforms项目中使用用户控件的示例。

首先在aspx页面顶部添加对用户控件的引用:

<%@ Register Src="UserControls/PersonSearch.ascx" TagName="PersonSearch" 
    TagPrefix="uc1" %>

然后当你想要使用它时:

<uc1:PersonSearch hid="ucPersonSearch" runat="server">
</uc1:PersonSearch>

您可以使用用户控件注册主页中的事件,公开属性,方法等...

例如,您可以拥有一个用户控件并使用用户控件从主页面注册一个通知事件,以便在选择一个人后触发。用户控件只需知道检查委托是否已注册并调用它。这使容器能够使用用户控件,但却以独特的方式利用它的强度。

这更像是对类固醇的部分观点,但我“偏向”用户控制(双关语):)

答案 3 :(得分:1)

我会使用Web用户控件。据我所知,他们提供相同的功能。另外,ASP.NET中的MVC实现也将它们用于部分视图。