Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# 当我试图在MVC视图中显示表中的最后一条记录时,它会重复_C#_Asp.net Mvc - Fatal编程技术网

C# 当我试图在MVC视图中显示表中的最后一条记录时,它会重复

C# 当我试图在MVC视图中显示表中的最后一条记录时,它会重复,c#,asp.net-mvc,C#,Asp.net Mvc,我正在开发一个MVC web应用程序,当我试图将填充的模型显示到表中时遇到了一个问题。我应该显示30条独特的记录,但最后一条记录显示了30次。当我使用换行符和单步执行时,它似乎填充了唯一的记录。下面是我的控制器和视图 型号: namespace WebServicesApp.Models { public class FilingViewModel { public static Filing filing = new Filing(); public static F

我正在开发一个MVC web应用程序,当我试图将填充的模型显示到表中时遇到了一个问题。我应该显示30条独特的记录,但最后一条记录显示了30次。当我使用换行符和单步执行时,它似乎填充了唯一的记录。下面是我的控制器和视图

型号:

namespace WebServicesApp.Models
{
    public class FilingViewModel
   {
   public static Filing filing = new Filing();
   public static FilingMaster filingMaster = new FilingMaster();
   }
}
控制器:

public ActionResult FilingHomePage()
    {

        DatabaseClass db = new DatabaseClass();
        DataSet ds = new DataSet();
        var model = new List<FilingViewModel>();

        db.GetFiling(ref ds, "10600");

        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            var filingViewModel = new FilingViewModel();
            FilingViewModel.filing.Service = dr.Field<string>("Service");
            FilingViewModel.filing.filing_Description = dr.Field<string>("filing_Description");
            FilingViewModel.filing.Date_Post = dr.Field<DateTime>``("Date_Due");
            model.Add(filingViewModel);
        }


        return View(model);
    }
公共行动结果备案主页()
{
DatabaseClass db=新的DatabaseClass();
数据集ds=新数据集();
var模型=新列表();
db.GetFile(参考ds,“10600”);
foreach(ds.Tables[0].行中的数据行dr)
{
var filingViewModel=新的filingViewModel();
FilingViewModel.Filling.Service=dr.Field(“服务”);
FilingViewModel.filing.filing_Description=dr.Field(“filing_Description”);
FilingViewModel.filing.Date_Post=dr.Field``(“到期日期”);
model.Add(filingViewModel);
}
返回视图(模型);
}
视图:

@using WebServicesApp.Models
@model List<FilingViewModel>
@{
    ViewBag.Title = "FilingHomePage";
    Layout = "~/Views/Shared/_Layout.cshtml";
 }

<div class="container">
<div class="jumbotron">
    <h2>Welcome to Filing Center</h2>
    <p>From here you can see your returns that need to be filed, view your 
       filing history, and create a new filing record</p>
</div>
</div>
<div class="row">

<div class="col-sm-6">
    <div class="panel panel-default">
        <div class="panel-heading">Returns to File</div>
        <div class="panel-body">
            <p>The following are returns that need to be filed. Please select </p>
            <div class="table-responsive">
                <table class="table">
                    <thead>
                        <tr>
                            <th>Filing Name</th>
                            <th>Filing Description</th>
                            <th>Date Posted</th>
                        </tr>
                    </thead>
                    <tbody>


                        @foreach (var filing in Model)
                        {
                            <tr>
                                <td>@FilingViewModel.filing.Service
                                <td>@FilingViewModel.filing.filing_Description</td>
                                <td>@FilingViewModel.filing.Date_Post</td>
                                <td><a>Select</a></td>
                            </tr>
                        }
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>

<div class="col-sm-6">
    <div class="panel panel-default">
        <div class="panel-heading">Return History</div>
        <div class="panel-body">
            <p>Below is a list of filings that have been posted</p>
            <div class="table-responsive">
                <table class="table">
                    <tr>
                        <th>Filing Name</th>
                        <th>Filing Description</th>
                        <th>Date Posted</th>
                    </tr>
                </table>
            </div>
        </div>
    </div>
</div>

 @*<div class="col-sm-4">
    <div class="panel panel-default">
        <div class="panel-heading">Create New Filing</div>
        <div class="panel-body">
            <p>Here you can enter information for a filing that does not exist yet.</p>
            <form class="form-horizontal">

            </form>
        </div>
    </div>
  </div>*@
</div>
@使用WebServicesApp.Models
@模型列表
@{
ViewBag.Title=“文件主页”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
欢迎来到档案中心
从这里您可以看到您需要提交的申报表,查看您的
归档历史记录,并创建新的归档记录

返回文件 以下是需要提交的申报表。请选择

文件名 归档说明 公布日期 @foreach(模型中的var归档) { @FilingViewModel.Filling.Service @FilingViewModel.Filling.Filling\u说明 @FillingViewModel.Filling.Date_Post 挑选 } 回归历史 以下是已发布的文件列表

文件名 归档说明 公布日期 @* 创建新文件 您可以在此处输入尚未存在的归档信息

*@
在您的型号中

public class FilingViewModel
{
   public List<Filing> Filings { get; set; };
}
公共类文件视图模型
{
公共列表文件{get;set;};
}
在控制器中

var model = new FilingViewModel();
foreach (DataRow dr in ds.Tables[0].Rows)
    {
        var filing = new Filing();
        filing.Service = dr.Field<string>("Service");
        filing.filing_Description = dr.Field<string>("filing_Description");
        filing.Date_Post = dr.Field<DateTime>``("Date_Due");
        model.Filings.Add(filing);
    }
var模型=新文件视图模型();
foreach(ds.Tables[0].行中的数据行dr)
{
var申报=新申报();
归档服务=dr.Field(“服务”);
filing.filing_Description=dr.Field(“filing_Description”);
file.Date_Post=dr.Field`(“到期日期”);
模型。归档。添加(归档);
}
在你看来:

@model FilingViewModel

@foreach (var filing in Model.Filings)
                        {
                            <tr>
                                <td>@filing.Service
                                <td>@filing.filing_Description</td>
                                <td>@filing.Date_Post</td>
                                <td><a>Select</a></td>
                            </tr>
                        }
@model文件视图模型
@foreach(模型文件中的var文件)
{
@归档服务
@归档
@提交日期
挑选
}

我认为剃须刀部分应该是

@foreach (var filing in Model)
{
    <tr>
        <td>@filing.filing.Service
        <td>@filing.filing.filing_Description</td>
        <td>@filing.filing.Date_Post</td>
        <td><a>Select</a></td>
    </tr>
}
@foreach(模型中的var归档)
{
@归档、归档、服务
@归档。归档。归档描述
@存档日期
挑选
}
更改您的型号:

namespace WebServicesApp.Models
{
    public class FilingViewModel
   {
     public FilingViewModel() {
       this.filing = new Filing();
       this.filingMaster = new FilingMaster();
     }

     public Filing filing {get;set;}
     public FilingMaster filingMaster  {get;set;}
   }
}
然后在你的控制器里

    var model = new FilingViewModel();
   foreach (DataRow dr in ds.Tables[0].Rows)
        {
            var filingViewModel = new FilingViewModel();
            filingViewModel .filing.Service = dr.Field<string>("Service");
            filingViewModel .filing.filing_Description = dr.Field<string>("filing_Description");
            filingViewModel .filing.Date_Post = dr.Field<DateTime>``("Date_Due");
            model.Add(filingViewModel);
        }
var模型=新文件视图模型();
foreach(ds.Tables[0].行中的数据行dr)
{
var filingViewModel=新的filingViewModel();
filingViewModel.filing.Service=dr.Field(“服务”);
filingViewModel.filing.filing_Description=dr.Field(“filing_Description”);
filingViewModel.filing.Date_Post=dr.Field``(“到期日期”);
model.Add(filingViewModel);
}

如何设置您的
文件视图模型的属性?我看到您正在创建一个新实例并将其添加到
model
列表中,但是没有在实例中设置属性。我是您的视图您似乎正在访问一个静态实例(
FillingViewModel
),而不是访问
filling
变量。将@FillingViewModel.filling.xxx替换为@filling.xxxI有两个模型我将用于此视图(filling和FillingMaster)。为此,我创建了FilingViewModel模型。我编辑了问题以包含模型。您有
静态
字段!-它们必须是属性-
公共文件归档{get;set;}
公共文件归档主机归档主机{get;set}
您需要更改您的模型,您使用的是静态字段,因此此字段的所有实例的值都相同。更改公共类FilingViewModel上的属性的静态值,并在此类的构造函数上更改InstanceState。然后在foreach行中,需要更改以使用实例(现在正在使用该类)。其余的看起来都不错。当我这样做时,在filingViewModel.Filling下会出现一条红线,表示“无法使用实例引用访问成员,请使用类型名称对其进行限定。”这是因为您将Filling标记为static。如果不需要在viewmodel之外访问该属性,则应删除该属性。应该如下所示:public fileing{get;set;}您每次都会得到最后一个归档对象的原因是因为您正在ViewModel中更新归档对象,然后在控制器循环中更新y