gpt4 book ai didi

c# - 访问模型时出现 ASP.NET Core NullReferenceException

转载 作者:太空狗 更新时间:2023-10-29 20:09:19 25 4
gpt4 key购买 nike

我在尝试使用强类型模型创建 View 时遇到了问题。无论我将什么作为模型传递给 View() , 我总是收到 NullReferenceException即使只是访问 Model .

在执行 razor 页面的其余部分之前,我什至无法检查模型是否为空;简单地做一个 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: Object reference not set to an instance of an object.

AspNetCore.Encoder_MVC_EncodeProgress.get_Model()
AspNetCore.Encoder_MVC_EncodeProgress.ExecuteAsync() in EncodeProgress.cshtml
var module = Model;

我做错了什么?我尝试了多种修复和解决方法(使用 ViewComponent 而不是 View )但没有任何效果。

我发现的一些类似的问题并没有解决我的问题:

ASP.NET Core Model null error in the Index view

我已经传递了模型,所以这个答案不会改变我正在做的事情。例如,当我尝试使用 Controller 作为解决方法时,相同的 NullReferenceException发生在这段代码中:

    [Route("/encode/progress")]
public IActionResult GetProgress()
{
return View("~/Encoder/MVC/EncodeProgress.cshtml", new EncoderModule());
}

最佳答案

我认为你在混合 Razor Pages使用 ASP.NET MVC。尝试删除 @page 指令,您的模型应该绑定(bind)到调用 return View() 时传递的值。

关于c# - 访问模型时出现 ASP.NET Core NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52013771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com