因此,大约四年前其他人在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 studio说“当前上下文中不存在名称'writeCourseList'”
我很困惑,因为writeCourseList是类CourseList中的公共方法。此外,此代码必须在某一点编译,因为它在实时服务器上工作。 CourseList类:
namespace ah{
public partial class CourseList: System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
}
public void writeCourseList()
{ //do stuff}
}
}
任何帮助将不胜感激。另外,请随时告诉我如何更好地提出这个问题。谢谢!
答案 0 :(得分:1)
尝试
public string writeCourseList()
{
return "this is a course list";
}
如果要使用内联asp.net标记,则需要从方法返回一个字符串。
inline asp.net tags... sorting them all out (<%$, <%=, <%, <%#, etc.)
但我不会使用这个classis asp风格。您应该使用网络数据绑定控件,例如GridView, Repeater, ListView,DataList
或简单的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();
}
}
listBox1.Items.Add(new ListItem("Course-name","ID"));