私のアプリがクラッシュする理由を理解できません。ViewBagプロパティにアクセスしようとするとアプリケーションが終了する
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
へのアクセスを試みるとクラッシュします。デバッガでのみ作成しようとしても。
あなたはそれをキャストする必要があります('をViewBag'は動的である)ことを確認してください'コントローラはそれを' if'ブロックにセットするだけです。 –
@StephenMuecke、それはキャスティングを必要とせず、 'null'の場合、このコードは' stages'を 'null'に等しくする必要があります。アプリケーションをクラッシュさせません。しかし、コントローラでチェックしたので、「null」ではありません。 –
Global.asaxのApplication_Error()でエラーをキャッチしようとしましたか? –