【发布时间】:2018-08-25 03:25:09
【问题描述】:
我在尝试使用强类型模型创建视图时遇到问题。无论我将什么作为模型传递给View(),即使只是访问Model,我总是会收到NullReferenceException。
在执行剃刀页面的其余部分之前,我什至无法检查模型是否为空;只需执行 if (Model != null) 也会抛出相同的 NullReferenceException。
Index.cshtml
@page
@model EncodeModel
@{
Layout = "~/Pages/Shared/_Layout.cshtml";
}
<h2>Encode</h2>
<div id="progress">
@await Html.PartialAsync("~/Encoder/MVC/EncodeProgress.cshtml", new EncodeModule())
</div>
EncodeProgress.cshtml
@page
@model FFenc.IEncoderModule
@{
var module = Model; //this throws the NullReferenceException
}
Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseMvc();
}
异常堆栈跟踪:
NullReferenceException:对象引用未设置为对象的实例。
AspNetCore.Encoder_MVC_EncodeProgress.get_Model()
EncodeProgress.cshtml 中的 AspNetCore.Encoder_MVC_EncodeProgress.ExecuteAsync()
var 模块 = 模型;
我做错了什么?我尝试了多种修复和解决方法(使用 ViewComponent 而不是视图),但没有任何效果。
我发现的一些类似问题并没有解决我的问题:
ASP.NET Core Model null error in the Index view
我已经传递了模型,所以这个答案不会改变我正在做的任何事情。例如,当我尝试使用控制器作为解决方法时,同样的NullReferenceException 发生在这段代码中:
[Route("/encode/progress")]
public IActionResult GetProgress()
{
return View("~/Encoder/MVC/EncodeProgress.cshtml", new EncoderModule());
}
【问题讨论】:
标签: c# razor asp.net-core asp.net-core-mvc