在模型中列出要查看的控制器
本文关键字:控制器 模型 | 更新日期: 2023-09-27 18:26:55
我正在学习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>
您忘记将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>
}