моя причина желания знать это заключается в том, что я хотел иметь возможность переключать Layout
частичного представления в зависимости от того, было ли оно визуализировано из действия контроллера или из другой страницы.
ie.
return PartialView("MyView.cshtml");
приведет к макету с необходимыми полосами меню и другими элементами сайта.
и
@Html.Partial("MyView")
просто вставят содержимое без добавленияостальная часть страницы.
так, в макете моей страницы по умолчанию у меня есть:
@if (this.IsPartial()) {
Layout = null;
} else {
Layout = "_SiteLayout";
}
@RenderBody()
вот что я нашел:
public static bool IsPartialResult(this WebPageBase @this)
{
return !@this.OutputStack.Any(writer => writer is HttpWriter);
}
это, вероятно, не будетработать в любых ситуациях.но это работает для меня.YMMV / НТН