在Web窗体中包含处理程序响应

时间:2013-06-22 12:55:02

标签: c# asp.net webforms handler

我在页面加载方法中生成HTML超过1页。

所有生成的HTML在所有页面上都是相同的。

我发现每个页面都有相同的代码是很痛苦的,因为一旦我需要更改某些内容,我需要在所有页面中更改它们。

示例:

我在每个页面都有div

<div id="Questions" runat="server"></div>

在每个页面的Page Load方法中,我生成相同的HTML。

Questions.InnerHTML = "<span>...etc...</span>";

所以我决定创建一个生成这些内容的页面,然后将这个页面加载到其他页面的div中,意思是,如果我需要更改,我只会更改此页面。

我创建了一个处理程序,Questions.ashx。此处理程序生成该HTML并发回响应。

现在要包含它,我知道我可以使用JQUERY's .load()函数,但我想从服务器端生成这些HTML。

我尝试了什么:

Questions.InnerHTML = LoadControl("~/Handlers/Questions.ashx").ToString();

但我收到了这个错误:

Type 'Questions' does not inherit from 'System.Web.UI.UserControl'.

1 个答案:

答案 0 :(得分:1)

“LoadControl”用于“用户控件”,而不是HTTP处理程序..

您可能最好创建一个用户控件,这是一个.ascx文件。这可以包含HTML,ASPX控件和后面的代码,并且可以被任何ASPX页面引用。

更多信息:

http://msdn.microsoft.com/en-us/library/y6wb1a0e(v=vs.100).aspx