没有服务器端表单的ASCX用户控件的替代方案?

时间:2010-05-05 15:17:18

标签: asp.net user-controls webforms

我有一个ASP.NET 3.5 Web窗体应用程序,其中需要在几个不同的页面之间复制大量代码。听起来像是用户控制权的理想候选人?问题是,这不能包含在<form runat="server">中,因为它包含它自己的客户端形式。

没有runat=server控件或回发或任何真正需要该表单的内容 - 只需将其视为一大块带有一些基本<% %>标记的HTML。我只想在控件加载时设置一个属性,以便它知道输出什么。这纯粹是一种使代码更易于维护的练习。

在我使用oldskool <!--#include-->之前,还有更好的方法吗?

5 个答案:

答案 0 :(得分:3)

您仍然可以使用普通用户控件。只是不要依赖于viewstate和postbacks,你不应该有任何问题。

答案 1 :(得分:0)

<%=Response.Write(File.ReadAllText(Server.MapPath("~/includes/filename.ext")))%>

无论如何,这些都是如此。

编辑:与服务器端相同的功能包括,但如果我没有弄错,启用SSI语法需要更改IIS,否则不会。

编辑2:我没有看到你的include包含asp.net代码的注释。这显然只适用于客户端代码。我的错误。

答案 2 :(得分:0)

您可以拥有任意数量的表单控件,但只有一个可以使用runat =“server”。

其他一些技巧:

http://webproject.scottgu.com/CSharp/UserControls/UserControls.aspx

http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx

答案 3 :(得分:0)

我仍然把它作为一个控制。 &lt; %%&gt;东西可以是标签/文字,以获得更大的灵活性,一旦你完成说不需要回发,你就需要它们。最好设置其他页面以将其作为控件包含在内,以便以后更轻松地进行更改。哎呀 - 你甚至可以利用控制级别的缓存!

答案 4 :(得分:0)