提问人:Alparslan Aslan 提问时间:1/29/2023 最后编辑:marc_sAlparslan Aslan 更新时间:1/29/2023 访问量:181
为什么 .cshtml 文件在 .cshtml.cs 文件中看不到@model,并且我收到 Null 引用异常?
Why .cshtml file don't see @model in .cshtml.cs file and i get Null References exception?
问:
我创建了一个 ASP.NET Core 6 MVC 项目,我想在请求时看到“测试”,但我得到 .但是,当我创建 Razor 页面应用程序并在该项目上尝试相同的操作时,我没有收到任何错误。NullReferenceException
我在 Ubuntu 22.04 上运行应用程序,我使用 .NET Core 6.0 Framework。
namespace MyApp.Namespace
{
public class TestModel : PageModel
{
public string? Message { get; set; }
public void OnGet()
{
Message = "Test";
}
}
}
视图:
@model MyApp.Namespace.TestModel
<dir>@Model.Message</dir>
例外:
NullReferenceException:对象引用未设置为对象的实例。
Test.cshtml 中的 AspNetCoreGeneratedDocument.Views_Home_Test.ExecuteAsync()
@Model.在线留言
我尝试更改命名空间并在 Razor 页面中添加指令。一切都没有改变。@page
答:
0赞
Jackdaw
1/29/2023
#1
根据上面的代码,应在 Razor 视图文件中进行以下声明:
@page
@using MyApp.Namespace
@model TestModel
<dir>@Model.Message</dir>
有关如何创建 Razor Pages 和 声明的详细说明,您可以在此处的 Microsoft 文档中找到:Razor Pages@page
@model
0赞
Xinran Shen
1/29/2023
#2
MVC 需要在 View 和控制器之间传递模型。当您想显示后端的值时,您需要返回带有模型的视图。
创建模型以传递数据:
public class TestModel
{
public string? Message { get; set; }
}
在 HTTP GET 操作中设置默认值:
public IActionResult Index()
{
TestModel test = new TestModel();
test.Message = "Test";
//return view with model
return View(test);
}
视图
@model TestModel
<h1>@Model.Message</h1>
现在,您可以在视图中显示“测试
”:
评论