我有以下错误提示,
str = TempData [“ ReportName”]。ToString(); System.NullReferenceException:'对象引用未设置为对象的实例。System.Web.Mvc.TempDataDictionary.this [string] .get返回null。
这是我的逻辑:控制器A设置一个tempData的值并声明它=>导航到另一个控制器B => TempData [“ ReportName”] =值=>工作正常
倍数控制器:z,y =>我不想设置值或声明我的TempData,然后出现错误。
也许我的语法有误...
report = SetDefaultsForReportObject(report, previewFlag);
var model = new ReportResult()
{
ReportId = Guid.NewGuid().ToString("N"),
Report = report,
};
if ((TempData["ReportName"]?? "") != null)
{
string strPreview = "ProcessJournalPrintPreview";
string str;
str = TempData["ReportName"].ToString();
if (string.Equals(str, strPreview))
{
report.Watermark.Text = "Test";
ViewBag.IsDevExpressReporting = true;
}
else
{
report.Watermark.Text = null;
ViewBag.IsDevExpressReporting = true;
}
}
ViewBag.IsDevExpressReporting = true;
ViewBag.ReportId = model.ReportId;
如果该值可能存在或可能不存在,则只需要检查它是否为空即可。详细地说,可能是这样的:
string str = null;
object report = TempData["ReportName"];
if (report != null)
str = report.ToString();
如果您使用的是最新版本的C#,则可以将其简化为:
string str = TempData["ReportName"]?.ToString();
请记住,在您的逻辑中str
也可能是null
,因此请不要假定它具有值集。或设置默认值:
string str = TempData["ReportName"]?.ToString() ?? "";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句