2

因此,大约四年前其他人在 Visual Studios 2008 中构建的 ASP.net 项目现在需要更改它的一些硬编码值,而我的任务是重建它。我正在使用视觉工作室 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}
    }
}

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

4

1 回答 1

1

尝试

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

当您想使用内联 asp.net 标记时,您需要从方法中返回一个字符串。

内联 asp.net 标签...将它们全部排序(<%$、<%=、<%、<%# 等)

但相反,我不会使用这个 classis asp 样式。GridView, Repeater, ListView,DataList您应该使用类似或简单的Web 数据绑定控件ListBox

例如:

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"));
于 2012-10-26T19:40:25.550 回答