Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果触发System.NullReferenceException,是否有方法重定向到新页面?_C#_Asp.net Mvc - Fatal编程技术网

C# 如果触发System.NullReferenceException,是否有方法重定向到新页面?

C# 如果触发System.NullReferenceException,是否有方法重定向到新页面?,c#,asp.net-mvc,C#,Asp.net Mvc,我将代码配置为从asp.net标识中提取用户id,然后检查它是否与候选id关联,以加载该用户的查看候选页面 当然,如果候选id为null,它会抛出异常 我有没有办法告诉控制器,如果抛出异常,将重定向到新操作 我尝试过if(candidate.CandidateId

我将代码配置为从asp.net标识中提取用户id,然后检查它是否与候选id关联,以加载该用户的查看候选页面

当然,如果候选id为null,它会抛出异常

我有没有办法告诉控制器,如果抛出异常,将重定向到新操作


我尝试过if(candidate.CandidateId<1 | | CandidateId.ToString()==null)之类的if语句,但无论哪种方式,都会出现异常,因为candidate Id为null。

听起来好像你想得太多了。这里确实没有理由涉及异常处理,应用程序逻辑也不应该依赖异常处理

如果问题是
candidate
null
,则检查
candidate
是否为
null

if (candidate == null)
{
    // perform redirect and return
}
// the rest of your logic relying on candidate

在问题中,您声明实际为
null
的是
CandidateId
。对我来说,这听起来不太可能,但我想在你的设置中可能是这样的。如果是这样的话,结构仍然是一样的:

if (candidate.CandidateId == null)
{
    // perform redirect and return
}
// the rest of your logic relying on candidate.CandidateId
或者如果
CandidateId
是可为空的


您可以使用try/catch语句块来捕获异常并重定向。我会按照这里概述的流程使用一些东西,但是@David是正确的-不要将异常用于流控制。听起来有点像
候选者
本身是空的,在其中撒一些
,它应该按预期运行。编辑-哦,右键单击第一个代码块。阿萨维尔:我同意
候选人可能是这里的罪魁祸首。根据总体逻辑,使用
可能是合适的。在我看来,OP只是想在标识返回空用户时执行重定向,我怀疑最简单的方法就是检查返回的结果本身是否为
null
。对-我不知怎么地忽略了您的第一个代码块示例。干杯
if (!candidate.CandidateId.HasValue)
{
    // perform redirect and return
}
// the rest of your logic relying on candidate.CandidateId