Я работаю над кодом для создания веб-сайта с песнями, но при использовании этого кода получаю сообщение об ошибке:
ds.ReadXml(HttpContext.Current.Server.MapPath(filepath));
код ошибки: CS0103: имя "HttpContext" не существует в текущем контексте.
Мой код SongMethods.cs:
using System.Data;
using System;
/// <summary>
/// Summary description for Class1
/// </summary>
public class Pokoes
{
public Pokoes()
{
//
// TODO: Add constructor logic here
//
}
public DataSet GetAllSongs(string filepath)
{
DataSet ds =new DataSet("playlist");
DataTable dtSongs =new DataTable("song");
DataColumn dcId = new DataColumn("id");
DataColumn dcTitle = new DataColumn("title");
DataColumn dcArtist = new DataColumn("artist");
DataColumn dcYear = new DataColumn("year");
DataColumn dcGenre = new DataColumn("genre");
DataColumn dcFile = new DataColumn("file");
dtSongs.Columns.Add(dcId);
dtSongs.Columns.Add(dcTitle);
dtSongs.Columns.Add(dcArtist);
dtSongs.Columns.Add(dcYear);
dtSongs.Columns.Add(dcGenre);
dtSongs.Columns.Add(dcFile);
ds.Tables.Add(dtSongs);
ds.ReadXml(HttpContext.Current.Server.MapPath(filepath));
return ds;
}
}
Мой индексный код:
<!DOCTYPE html>
@using System;
@using XmlCrud.App_Code;
@{
SongMethods mySongMethods = new SongMethods();
string filePath = Server.MapPath(@"~\App_Data\playlist.xml");
DataSet ds = mySongMethods.GetAllSongs(filePath);
}
<html>
<head>
<title>XmlCrud</title>
<link href = "~/Content/bootstrap.min.css" rel"stylesheet" />
<script src = "~/Scripts/bootstrap.min.js"></script>
</head>
<body>
<br /><br />
<table class = "table-bordered">
<tr>
<th>Id</th>
<th>Title</th>
<th>Artist</th>
<th>Year</th>
<th>Genre</th>
<th>File</th>
</tr>
@foreach (DataRow dr in ds.Tables["song"].Rows)
{
<tr>
<td>@dr["id"]</td>
<td>@dr["title"]</td>
<td>@dr["artist"]</td>
<td>@dr["year"]</td>
<td>@dr["genre"]</td>
<td>@dr["file"]</td>
</tr>
}
</table>
</body>
</html>
Мой playlist.xml:
<?xml version = "1.0" encoding = "utf-8"?>
<playlist>
<song>
<id>1</id>
<title>if i can't</title>
<artist>50 cents</artist>
<year>2005</year>
<genre>rap</genre>
<file>link</file>
</song>
<song>
<id>2</id>
<title>time in a bottle</title>
<artist>jimmy croche</artist>
<year>1973</year>
<genre>accoustic</genre>
<file>link</file>
</song>
</playlist>
мы спросили одного из наших учителей, но он не мог помочь нам с проблемой в данный момент, поэтому мы надеемся, что некоторые люди здесь могут.
@NateW Вы бы не объявляли HttpContext, за исключением, возможно, части модульного теста. Это экземпляр, предоставляемый платформой ASP.NET.
Спасибо @mason, в целом я знал, что означает сообщение об ошибке, но я не знаком с этим аспектом программирования, поэтому я не мог предоставить правильное решение, а просто интерпретацию.
Должно быть: ds.ReadXml (путь к файлу); Сопоставление выполняется в HTML и не требует повторения.





HttpContext является частью пространства имен System.Web, поэтому добавьте
using System.Web;
Ошибка говорит вам, что вы никогда нигде не объявляли переменную
HttpContext, чтобы система знала, что это такое. Если у вас есть образец приложения, в котором уже есть успешная реализацияHttpContext, попробуйте просмотреть его, чтобы узнать, где определена переменная, и посмотрите, сможете ли вы это воспроизвести. Или попробуйте прочитать документацию HttpContext. Или попробуйте поискать в github фрагменты кода, которые приведут вас к проекту с полезными примерами кода.