我正在学习MVC 5,但我无法找到无法在视图中找到名单列表的原因?我确定自己做错了什么,但我不明白为什么会这样做,并且会提供一些帮助才能继续。
在控制器中,我测试过使用ViewBag
并使用返回传递List,然后使用@Model
。
模特课程:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MVC_1.Models
{
public class ListNames
{
public static List<string> names;
// Constructor
public ListNames()
{
// Create list
names = new List<string>();
// Add some names to list
names.Add("Anna");
names.Add("Linda");
names.Add("Petra");
}
}
}
控制器:
public ActionResult ListNames(List<string> Names)
{
ViewBag.Name = Names[0];
return View(Names);
}
查看:
@model MVC_1.Models.ListNames
@{
ViewBag.Title = "ListNames";
}
<h2>ListNames</h2>
<p>@ViewBag.Name</p>
<p>@Model.????</p>
答案 0 :(得分:2)
您忘记将get
和set
添加到模型内的列表中;
public class ListNames
{
public List<string> names { get; set; }
//rest of the code
}
正如@ stephen-muecke提到的那样,您的操作会返回List<string>
,并且该视图需要ListNames
模型。解决方案如下所示
public ActionResult ListNames()
{
var listNames = new MVC_1.Models.ListNames();
ViewBag.Name = listNames.names[0];
return View(listNames);
}
查看:
@model MVC_1.Models.ListNames
@{
ViewBag.Title = "ListNames";
}
<h2>ListNames</h2>
<p>@ViewBag.Name</p>
@foreach(var name in Model.names)
{
<p>@name</p>
}