Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取视图中的特定dataTable单元格值(ASP.NET MVC)_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 获取视图中的特定dataTable单元格值(ASP.NET MVC)

C# 获取视图中的特定dataTable单元格值(ASP.NET MVC),c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我试图找到一种方法来访问视图中数据表中的特定单元格。DataTable是在controller中创建的。 conroller中的代码: [ChildActionOnly] public ActionResult _ls() { var getXMLlivescore = new HtmlDocument(); getXMLlivescore.Load("D://lscopy.xml"); DataTable matchTable = new DataTable(

我试图找到一种方法来访问视图中数据表中的特定单元格。DataTable是在controller中创建的。 conroller中的代码:

[ChildActionOnly]
public ActionResult _ls()
{    
    var getXMLlivescore = new HtmlDocument();
    getXMLlivescore.Load("D://lscopy.xml");

    DataTable matchTable = new DataTable();
    matchTable.Columns.Add("put2forEventOr1", typeof(int));
    matchTable.Columns.Add("country", typeof(string));
    ...
    matchTable.Columns.Add("min", typeof(string));
    matchTable.Columns.Add("extramin", typeof(string));

    foreach (HtmlNode match in category.SelectNodes(".//match")){
        //code to get xml tags    
        matchTable.Rows.Add(put2forEventOr1, country, ....., min, extramin);
    }
    return PartialView(matchTable);
}
以及partialView代码:

<table>
    @foreach (DataRow row in Model.Rows)
    {        
       //get cell in row[0]
       @if (row[0] == 3){
           do some work
        }
    }
</table>

如何在视图中遍历DataTable单元格并获取特定单元格?

我真的不明白为什么需要使用DataTable。您始终可以创建具有所需结构的类。在您的观点中,我们将更容易了解简单的POCO

您尚未提供XML,因此我为非常简单的版本制作了一些示例:

<Elements>
   <Element>
      <Country>Peru</Country>
      <Min>20</Min>
   </Element>
   <Element>
      <Country>Armenia</Country>
      <Min>9</Min>
   </Element>
</Elements>
然后您可以使用读取XML的方法,例如:

var xDoc = XDocument.Load(xmlFilePath);
IEnumerable<Element> elements = xDoc
    .Descendants("Element")
    .Select(x => new Element
    {
        Country = x.Element("Country").Value,
        Min = Convert.ToInt32(x.Element("Min").Value),
        NotXmlProperty = "Value"
    });
之后,访问视图中的数据应该非常简单:

@model IEnumerable<Element>

<table>
    @foreach(var element in Model) 
    {
        <tr>
            <td>@element.Country</td>
            <td>@element.Min</td>
            <td>@element.NotXmlProperty</td>
        </tr>
    }
<table>

我应该使用与dataTable不同的东西吗?要一张单子吗?是否将每一行作为列表元素传递,并用逗号分隔?然后遍历视图中的列表?这似乎更容易,我将尝试一下,如果您实际从XML读取值,为什么需要将数据作为DataTable传递?我需要添加比给定XML更多的信息。我还需要以更有条理的方式呈现数据
@model IEnumerable<Element>

<table>
    @foreach(var element in Model) 
    {
        <tr>
            <td>@element.Country</td>
            <td>@element.Min</td>
            <td>@element.NotXmlProperty</td>
        </tr>
    }
<table>