【发布时间】:2021-03-19 06:19:55
【问题描述】:
如何从IResultFilter.OnResultExecuting 上的视图中删除视图的 Layout 属性?
编辑:
如果请求来自 AJAX,我正在尝试删除布局。 以下对我不起作用:
public class RemoveLayoutIfRequestIsFromAjaxResultFilterAttribute : ResultFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext context)
{
if (!(context.Result is ViewResult viewResult))
return;
if (context.HttpContext.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
{
viewResult.ViewData["Layout"] = "";
}
else
{
viewResult.ViewData["Layout"] = "_Layout";
}
}
}
我也试过OnResultExecuting方法,没有成功。
【问题讨论】:
-
想详细说明一下?你想达到什么目的?
-
你应该使用
OnResultExecuting。并确保在请求的视图中没有指定布局。 -
我无法让它工作,即使从 _views tart 中删除了布局。
-
是否删除指定视图中的布局?
标签: c# asp.net-mvc asp.net-core filter