gpt4 book ai didi

c# - 从 aspx 页面调用代码隐藏函数的问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:19 25 4
gpt4 key购买 nike

因此,大约四年前其他人在 Visual Studios 2008 中构建的 ASP.net 项目现在需要更改其一些硬编码值,而我的任务是重建它。我正在使用 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 中的公共(public)方法。此外,此代码必须在某一时刻编译,因为它可以在实时服务器上运行。 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";
}

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

inline asp.net tags... sorting them all out (<%$, <%=, <%, <%#, etc.)

但是我不会使用这种 classis asp 风格。您应该使用 Web 数据绑定(bind)控件,例如 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();
}
}

您也可以add ListItems手动:

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

关于c# - 从 aspx 页面调用代码隐藏函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com