我已经设置了一种CMS,因此工作人员可以在我们的新网站上编辑网站内容,而不是向我们提交请求。我需要编写一个可以从我的.aspx(前端)文件中调用的函数。所以我有一个div,我想从内部进行函数调用,如:
<div class='content-section'>
<% //call function here %>
</div>
我的第一个想法是让它成为Site.Master背后的代码中的一个函数,但我遇到了调用它的问题。我不是最多才多艺的C#开发人员,所以一些指导会很好。函数本质上只返回一个包含页面内容的字符串(从数据库中提取)
由于
答案 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>
这是子页面代码:
调用母版页的方法。
您可以使用@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>