【问题标题】:asp.net mvc repeater using foreach使用 foreach 的 asp.net mvc 中继器
【发布时间】:2019-12-06 19:16:15
【问题描述】:

我正在使用 ASP.NET MVC 构建网站,我需要将表单的值保存在表中,因此我使用 foreach 作为转发器,但出现错误

NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet。 AspNetCore.Views_Home_Resultat.ExecuteAsync() in Resultat.cshtml + @foreach (var item in Model.Itemlst)

型号:

public class Customers
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Customers> Itemlst { get; set; }
}

控制器:

public ActionResult List()
{
     Customers itemobj = new Customers();

     return View(itemobj);
}   

查看:

@foreach(var item in Model.Itemlst)
{
     <tr>
          <td>Items ID:</td>
          <td>@item.ID</td>
          <td>Items Name:</td>
          <td>@item.Name</td>
     </tr>
}
</table>
<form asp-controller="Home" asp-action="resultat" method="post" runat="server">
    <div class="form-style-5">

        <table>
            <tr>
                <td>
                    ID :
                </td>
                <td>
                    <input type="number" name="Id" required />
                </td>
            </tr>
            <tr>
                <td>
                    Name :
                </td>
                <td>
                    <input type="number" name="Name" required />
                </td>
            </tr>



            <tr>
                <td>
                    <input type="submit" name="resultat" value="show solution" />
                </td>
            </tr>


        </table>
    </div>
</form>

【问题讨论】:

  • 这能回答你的问题吗? repeater foreach in asp.net mvc
  • 您正在加载 resultat.cshtml,但有一个名为 List 的方法。它甚至会转到未初始化对象的 List 方法吗?还是您的 Resultat 方法?方法和视图名称应该相同。
  • 如何填充Model
  • 来自控制器
  • 您没有初始化 Itemlst。这就是错误告诉你的。在您的 list 方法中,您仍然没有初始化集合。您说您正在对答案发表评论,但是您没有向我们展示正确的代码。 List 不是正在加载的视图的名称。结果是。你的 Resultat() 方法在哪里

标签: c# asp.net-mvc razor


【解决方案1】:

你应该初始化Itemlst,如下所示:

public class Customers
{
    public Customers()
    {
        Itemlst = new List<Customers>();
    }

    public int Id { get; set; }
    public string Name { get; set; }
    public List<Customers> Itemlst { get; set; }
}

【讨论】:

  • @johnsmith 将 @item.ID 更改为 @item.Id 并重试。
  • 请从 view.cshtml 文件中提供更详细的信息。您如何在视图中接收模型?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
相关资源
最近更新 更多