从ASPX页面调用CodeBehind函数的问题



因此,一个ASP.NET项目,大约四年前在Visual Studios 2008中建造的其他人现在需要一些硬编码值,这是我重建它的任务。我正在使用Visual Studios 2012。

我对ASP没有很好的掌握,因为这不是我通常所做的。我对以下(已编辑)代码的位置有问题:

<%@ Page Language="C#" AutoEventWireup="True" 
CodeBehind="CourseList.aspx.cs" Inherits="ah.CourseList" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
<form id="form1" runat="server">
<% writeCourseList(); %> <!--Compiler complains -->
</form>
</body>
</html>

Visual Studios说"名称'WriteCourSelist'在当前上下文中不存在"

我很困惑,因为WriteCourSelist是班级课程的一种公共方法。另外,由于该代码在实时服务器上工作,因此必须在某一时刻进行编译。Courselist课程:

namespace ah{
    public partial class CourseList: System.Web.UI.Page{
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        public void writeCourseList()
        { //do stuff}
    }
}

任何帮助将不胜感激。另外,请随时向我建议如何更好地提出这个问题。谢谢!

尝试

public string writeCourseList()
{
    return "this is a course list";
}

当您要使用Inline ASP.NET标签时,您需要从方法返回字符串。

inline asp.net标签...将它们全部排序(&lt;%$,&lt;%=,&lt;%,&&&&&lt;%#等)

,但是我不会使用此Classis ASP样式。您应该使用GridView, Repeater, ListView,DataList或简单ListBox的Web数据库控件。

例如:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
     {
          listBox1.DataSource = getAllListCourses(); // f.e. a DataTable
          listBox1.DataTextField  = "TextColumn";
          listBox1.DataValueField = "IdColumn";
          listBox1.DataBind();
     }
}

您也可以手动add ListItems

listBox1.Items.Add(new ListItem("Course-name","ID"));

最新更新