我无法理解为什么我的应用崩溃了。这是我在控制器中的动作:
public ActionResult AttachmentsPartial(Guid processId)
{
var staff = GetCurrentStaff();
var process = Db.Processes.Include(nameof(Stages)).FirstOrDefault(p => p.Id == processId);
if (process != null && staff != null)
{
var stages = process.Stages.ToList();
ViewBag.Stages = stages;
var files = new List<AttachmentViewModel<Guid>>();
foreach (var stage in stages)
{
//***Some code***
files.AddRange(items);
}
return PartialView("_AttachmentsPartial", files);
}
return PartialView("_AttachmentsPartial");
}
我的观点:
@model List<AttachmentViewModel<Guid>>
@using PM.Models;
@using PM.Resources.Strings;
@using PM.Utils;
@{
List<Stages> stages = ViewBag.Stages; // This crashes here
}
早些时候,它与StackOverflowException
崩溃但现在没有输出任何内容,只需完成应用
我尝试调试此代码,当我尝试访问ViewBag.Stages
时它崩溃了。即使我尝试仅在调试器中创建它。
答案 0 :(得分:1)
这是一个我经常用来在加载部分等时发现错误的函数,这些错误似乎没有任何痕迹。
在Global.asax.cs中创建:
protected void Application_Error()
{
Exception exception = Server.GetLastError();
Response.Clear();
Server.ClearError();
HttpException ex = exception as HttpException;
var test = ex.GetHttpCode();
}
我只是在异常上放置了一个断点,并在它抛出时将鼠标悬停在它上面。它通常告诉我出了什么问题。
答案 1 :(得分:1)
您尝试将数组分配到列表?
List<Stages> stages = ViewBag.Stages;
成功
Stages[] stages = ViewBag.Stages;