动态内容函数(可从首页.aspx调用,而不是代码隐藏)

时间:2014-04-05 23:36:58

标签: c# asp.net

我已经设置了一种CMS,因此工作人员可以在我们的新网站上编辑网站内容,而不是向我们提交请求。我需要编写一个可以从我的.aspx(前端)文件中调用的函数。所以我有一个div,我想从内部进行函数调用,如:

<div class='content-section'>
    <% //call function here %>
</div>

我的第一个想法是让它成为Site.Master背后的代码中的一个函数,但我遇到了调用它的问题。我不是最多才多艺的C#开发人员,所以一些指导会很好。函数本质上只返回一个包含页面内容的字符串(从数据库中提取)

由于

1 个答案:

答案 0 :(得分:1)

使用以下模式在ASPX中拥有C#代码:

<%@ Page Language="C#" %>

<script runat=server>

protected String MethodThatReturnsStringFromDB()
{
    // do the DB logic
    return "stringfromdb";
}

</script>
<html>
 <body>
  <form id="form1" runat="server">
   <div class='content-section'>
     <% =MethodThatReturnsStringFromDB()%>
   </div>
  </form>
 </body>
</html>

如果您想从多个页面使用此方法,那么您可以尝试将其放在母版页中,如下所示并在子页面中使用它:

主页面aspx代码:

<%@ Page Language="C#" %>

<script runat=server>

public String MethodInMasterPageThatReturnsStringFromDB()
{
    // do the DB logic
    return "stringfromdb";
}

</script>
<html>
 <!-- site.master markup -->
</html> 

这是子页面代码:

  1. 确保按类型引用母版页。 (否则你需要施放它)
  2. 调用母版页的方法。

      
  3. 您可以使用@MasterType指令来避免强制转换

    <%@ Page Language="C#" MasterPageFile="~/site.Master" %>
    <%@ MasterType VirtualPath="~/site.master" %>
    
    <div class='content-section'>
     <% =Page.Master.MethodInMasterThatReturnsStringFromDB()%>
    </div>
    

    没有@MasterType指令,它将是:

    <%@ Page Language="C#" MasterPageFile="~/site.Master" %>
    
    <div class='content-section'>
     <% =(Page.Master as MasterPageType).MethodInMasterThatReturnsStringFromDB()%>
    </div>