2014-11-24 94 views
0

如何使用NLog获取有关本地错误的详细信息?在MVC应用程序中使用NLog

到现在为止我有这样的:

private static Logger logger = LogManager.GetCurrentClassLogger(); 

public ActionResult Index() 
{ 
    try 
    { 
     var domain = db.Works.ToList(); 

     var model = Mapper.Map<IList<Work>, IList<WorkIndexViewModels>>(domain); 

     return View(model); 
    } 
    catch (Exception e) 
    { 
     logger.Error("Error in Index: " + e); 
    } 
} 

如果我把捕捉后的回报,该模型是超出范围。

如果我在try中放入return,我会从Action获得“并非所有代码路径都返回一个值”。

那么我该如何解决这个问题?

回答

2

既然你已经捕获的错误并不能显示所请求的页面,你可以在捕捉范围内重定向到错误页面:

catch (Exception e) 
    { 
     logger.Error("Error in Index: " + e); 
     return RedirectToAction("Index", "Error"); // Redirect to error controller or page 
    } 

或者,也可能更合适,你可以有您的操作会引发500错误,以便您的web.config中的错误配置可以正确处理重定向。

catch (Exception e) 
    { 
     logger.Error("Error in Index: " + e); 
     return new HttpStatusCodeResult(500); // Raise internal server error 
    } 
+0

嗨杰森,谢谢!抱歉耽搁了。 – Patrick 2015-01-22 14:55:47

+0

没问题 - 很高兴为你效劳! – 2015-01-23 03:07:44