2

そのため、約4年前に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}
    }
}

どんな助けでもいただければ幸いです。また、この質問をより適切に行う方法について、遠慮なくアドバイスしてください。ありがとうございました!

4

1 に答える 1

1

試す

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

インラインasp.netタグを使用する場合は、メソッドから文字列を返す必要があります。

インラインasp.netタグ...すべてを並べ替える(<%$、<%=、<%、<%#など)

しかし、代わりに私はこのclassisaspスタイルを使用しません。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 に答える