今天修復mvc中的一個bug,需求是每個頁面要獲取當前URL鏈接中 host首是否正確,我把獲取url的方法寫到了Controller的基類BaseController(BaseController繼承自Controller),所以在mvc中寫了下面的代碼。
public class HomeController : BaseController
{
......
}
public class BaseController : Controller
{
public BaseController ()
{
if (Request==null ) //Request的值始終為null
{
......
}
}
}
解決辦法:
public class BaseController : Controller
{
// 在調用操作方法前調用。
protected override void OnActionExecuting(ActionExecutingContext ctx)
{
base.OnActionExecuting(ctx);
if (Request == null)
{
......
}
}
// 在調用操作方法后調用。
protected override void OnActionExecuted(ActionExecutedContext ctx)
{
base.OnActionExecuted(ctx);
if (Request==null )
{
......
}
}
}
根據需要選擇。