Asp.net core ASP.NET核心-MVC-视图中的模型变量-空异常
为了学习ASP.NET核心MVC,我做了一个简单的项目,并试图将在控制器中创建的模型实例传递给视图 控制器代码-我创建一个简单的列表,然后将其传递给视图,明确显示哪个视图Asp.net core ASP.NET核心-MVC-视图中的模型变量-空异常,asp.net-core,model-view-controller,nullreferenceexception,Asp.net Core,Model View Controller,Nullreferenceexception,为了学习ASP.NET核心MVC,我做了一个简单的项目,并试图将在控制器中创建的模型实例传递给视图 控制器代码-我创建一个简单的列表,然后将其传递给视图,明确显示哪个视图 公共类TableController:控制器 { 公共IActionResult索引() { var modelData=新列表{“A”,“B”}; ViewBag.Title=“表格”; 返回视图(“/Pages/Table.cshtml”,modelData); } } 查看代码 @page @model List<
公共类TableController:控制器
{
公共IActionResult索引()
{
var modelData=新列表{“A”,“B”};
ViewBag.Title=“表格”;
返回视图(“/Pages/Table.cshtml”,modelData);
}
}
查看代码
@page
@model List<string>
<div class="text-center">
<h1 class="display-4">@ViewBag.Title</h1>
@if (Model == null)
{
<p>There is no data to be displayed</p>
}
else
{
<ul>
@foreach (string str in Model)
{
<li>@str</li>
}
</ul>
}
</div>
@page
@模型列表
@视图包。标题
@if(Model==null)
{
没有要显示的数据
}
其他的
{
@foreach(模型中的字符串str)
{
- @str
}
}
在控制器中设置断点时,作为模型参数传入的对象不为null:
但是,当我逐步进入视图代码时,我得到以下信息:
我看过其他一些“Model is null”帖子,但它们是由于View()Model参数中传递的内容与@Model声明中给出的视图中预期的内容之间的类型不匹配造成的
这可能很简单,但我不确定哪里出了问题?在asp.net MVC中,视图并不意味着
Razor页面
。您可以使用视图页面
,在视图中添加一个表文件夹。然后向其中添加Index.cshtml(Razor视图页面)
下面是一个演示:
控制器(returnview()
中的Index
操作将在视图/表(视图/控制器名称)中找到Index.cshtml):
查看文件夹结构(每个文件夹表示除共享的之外的控制器):
结果:
在asp.net MVC中,视图并不意味着Razor页面
。您可以使用视图页面
,在视图中添加一个表文件夹。然后向其添加Index.cshtml(Razor视图页面)
下面是一个演示:
控制器(returnview()
中的Index
操作将在视图/表(视图/控制器名称)中找到Index.cshtml):
查看文件夹结构(每个文件夹表示除共享的之外的控制器):
结果:
我也有同样的例外,解决方案是删除Index.cshtml中的@page,然后爆炸,一切都在那里。我花了5-6个小时来“解决”这个异常,但迟做总比不做要好。我也遇到了同样的异常,解决方法是删除Index.cshtml中的@page,然后轰隆一声,一切都准备好了。我花了5-6个小时来“解决”这个异常,但迟做总比不做要好。也许可以尝试使用模型的实际自定义类,其中列表是模型的属性,而不是直接使用。这就是MVC应该如何工作的可能尝试使用模型的实际自定义类,其中列表是模型的属性,而不是直接使用。这就是MVC的工作原理
@page
@model List<string>
<div class="text-center">
<h1 class="display-4">@ViewBag.Title</h1>
@if (Model == null)
{
<p>There is no data to be displayed</p>
}
else
{
<ul>
@foreach (string str in Model)
{
<li>@str</li>
}
</ul>
}
</div>
public class TableController : Controller
{
public IActionResult Index()
{
var modelData = new List<string> { "A", "B" };
ViewBag.Title = "Tables";
return View(modelData);
}
}
@model List<string>
@{
ViewData["Title"] = "Table_Index";
}
<div class="text-center">
<h1 class="display-4">@ViewBag.Title</h1>
@if (Model == null)
{
<p>There is no data to be displayed</p>
}
else
{
<ul>
@foreach (string str in Model)
{
<li>@str</li>
}
</ul>
}
</div>