【问题标题】:ASP.Net Class References a Control from ASPX FormASP.Net 类从 ASPX 窗体引用控件
【发布时间】:2013-02-28 11:00:00
【问题描述】:

所以,我看到了很多关于这个领域的讨论,但似乎他们主要讨论的是 Windows 窗体,或者他们没有足够时间回答这个特定的场景来为我指明正确的方向。

正是我需要做的(通用示例):

HTML (fragment.aspx)

<div id="html_fragment_1" runat="server">Contents</div>
<div id="html_fragment_2" runat="server">Contents</div>
...

代码隐藏 (fragment.aspx.cs)

Fragments fragment = new Fragments();
fragment.return_fragment(  AN INSTANCE THAT REFERS TO html_fragment_N  );

类(Fragments.cs)

public void return_fragment ( AN INSTANCE THAT REFERS TO html_fragment_N ) {
    string html = INSTANCE.html_fragment_N;
    // DO SOMETHING WITH html
    HttpContext.Current.Response.Write(html);
}

我需要这样做的原因是我网站上的每个 aspx 表单都需要通过 Fragments.return_fragment() 以相同的方式进行操作,其中需要从表单中读取多个 DIV 的内容并将其排列成一个要返回的 XElement。

我宁愿让每个表单都使用 Fragments.return_fragment() ,而不是在 CodeBehind 中对每个页面进行操作,这样可以节省实现新表单页面的工作量,并且可以轻松更改代码而无需更改它在每个窗体中。

【问题讨论】:

  • 这些表单是否使用 MasterPages? (我假设这是 Web 表单,而不是 MVC)。这是针对所有 '
    ' 元素,还是仅针对具有特定名称的元素?
  • 我认为我们需要更多信息。为什么要这样做?每个 div 的内容是动态的吗?为什么要将那个 div 的内容转换为 XElement?这对我来说似乎是个坏主意......但在您提供更多信息之前我无法解释原因
  • 表单是要返回的 HTML 片段,例如通过 AJAX 请求。对于两种不同的场景,它们需要能够以原始 html 的形式返回,和/或按 XML 中的内容类型排列。
  • 每个div的内容确实需要动态的选项。返回的一些片段具有从数据库中填写的数据。在某些情况下,所有内容都需要返回并显示为 html。在其他情况下,需要将内容重用于其他目的,并以 XML 格式返回,以便可以使用片段的相关部分。
  • 因此,您正在通过 page_load 之类的代码隐藏填充这些 div,然后使用 ajax 将这些 div 的内容拉出并将它们发送回服务器,将它们格式化为XElements,并将它们返回给浏览器?只是为了确保我理解正确

标签: c# asp.net forms class controls


【解决方案1】:

您似乎想要应用的 Global.asax 文件:

http://msdn.microsoft.com/en-us/library/1xaas8a2(v=vs.71).aspx

在此处查看您应用的页面事件,以指定每个页面请求应发生的事情。

【讨论】:

  • 从我读过的内容来看,这可能很棒,但我的应用程序中没有 Global.asax 文件。文档太模糊,我无法弄清楚如何实现它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 2010-10-19
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多