Carregar o PartialView for AJAX e o View para não-AJAX request

Quero implementar algo como no facebook:

epois de clicar com o botão esquerdo na foto, ela é carregada via AJAX depois do clique do meio no scroll, ele é carregado normalmente com layout adicional

or enquanto, tenho um View, carregado no Controller em dois métodos diferente

public ActionResult Overview()
{
    return View("Overview");
}

public ActionResult OverviewPartialView()
{
    return PartialView("Overview");
}

E no script jquery, fica assim:

$(contentContainer).load(_link + 'PartialView');

Minha pergunta é: existe uma maneira melhor de resolver esse problema? Eu tentei com algo assim no _ViewStart:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    if (IsAjax)
    {
        Layout = null;
    }
}

E algo assim no Controller:

public ActionResult Index()
{
    if (Request.IsAjaxRequest())
        return PartialView();

    return View();
}

Mas nessas soluções tive um problema com o cache, depois de abrir uma página com layout, na solicitação AJAX também a página com layout foi carregad

questionAnswers(2)

yourAnswerToTheQuestion