首页 > 解决方案 > 如何在视图列表中显示

问题描述

在查看“索引”输出列表中的用户、他们的姓名、消息日期、消息。并且每个都有链接“信息”。List<string> ListMessage点击链接“信息”后如何在用户的“信息”视图中显示?仅输出为空表:(

ASP.NET 是硬核。

这是我的模型

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Message { get; set; }
    public List<string> ListMessage { get; set; }
    public DateTime Date { get; set; }
}

我的控制器:

[HttpPost]
    public ActionResult Index(User user)
    {
        IEnumerable<User> users = db.Users;
        if (user.Name == users.Where(i => i.Name == user.Name).ToString())
        {
            user.ListMessage = new List<string>();
            user.ListMessage.Add(user.Message);          
        }
        user.ListMessage = new List<string>();
        user.ListMessage.Add(user.Message);
        ViewBag.Customers = users;
        user.Date = DateTime.Now;
        db.Users.Add(user);
        db.SaveChanges();            
        return View();
    }
    [HttpGet]
    public ActionResult Info(int id)
    {
        IEnumerable<User> users = db.Users;
        ViewBag.Customers = users;
        var c = new User();
        c.ListMessage = new List<string>();
        ViewBag.Messages = c.ListMessage;
        return View(c.ListMessage);
    }

查看“信息”:

@{
    ViewBag.Title = "All messages";
}
@using MessageBank.Models
@model List<string>
        <table>               
            <tr>
                <td><p>Id</p></td>
                <td><p>Name</p></td>
                <td><p>Time</p></td>
                <td><p>Message</p></td>
                <td></td>
            </tr>
            @foreach (var el in Model)
            {
            <tr>
                <td><p>@Html.DisplayFor(m => el)</p></td>
                <td><p>@el</p></td>
            </tr>
            }
        </table>

标签: c#asp.net-mvc

解决方案


您没有为 ListMessage 初始化值。我试图初始化c.ListMessage = new List<string> { "Test1", "Test2" };

 [HttpGet]
    public ActionResult Info(int id)
    {
        IEnumerable<User> users = db.Users;
        ViewBag.Customers = users;
        var c = new User();
        c.ListMessage = new List<string> { "Test1", "Test2" };
        ViewBag.Messages = c.ListMessage;
        return View(c.ListMessage);
    }

它在表中显示了 Test1 和 Test2 的值。

也不确定为什么不使用它们就分配了 2 个 ViewBags?

可能是你想要的c.ListMessage = db.Users.Select(c=>c.Message).ToList()


推荐阅读