我有一个ASP.NET 3.5 Web窗体应用程序,其中需要在几个不同的页面之间复制大量代码。听起来像是用户控制权的理想候选人?问题是,这不能包含在<form runat="server">
中,因为它包含它自己的客户端形式。
没有runat=server
控件或回发或任何真正需要该表单的内容 - 只需将其视为一大块带有一些基本<% %>
标记的HTML。我只想在控件加载时设置一个属性,以便它知道输出什么。这纯粹是一种使代码更易于维护的练习。
在我使用oldskool <!--#include-->
之前,还有更好的方法吗?
答案 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)