在我的MVC3应用程序中,我有一个自定义控制器工厂,其CreateController()
方法的工作方式如下:
public IController CreateController(RequestContext requestContext, string controllerName)
{
string host = requestContext.HttpContext.Request.Headers["Host"];
if( !host.EndsWith( SomeHardcodedString ) ) { // FAILS HERE
//some special action
}
//proceed with controller creation
}
问题是host
有时为空 - 我看到NullReferenceException
表示某些请求,而异常堆栈跟踪点正好在该行。
为什么会在这里检索null
?我该如何处理这类案件?
答案 0 :(得分:7)
使用string host = requestContext.HttpContext.Request.Url.Host;
答案 1 :(得分:2)
要处理它,你可能想尝试类似的东西:
var host = requestContext.HttpContext.Request.Url.Host;
if (host != null)
if(!host.EndsWith("SomeHardcodedString"))
else
// Handle it