Asp.net mvc 如何在asp.net mvc中基于请求类型包含/排除布局页面
我有一个索引视图和一个布局页面。我的要求是: 如果我通过在浏览器中点击url来调用action方法 然后布局页面不应直接应用于索引视图,但如果 使用AJAX调用action方法,那么布局页面应该是 应用于索引视图Asp.net mvc 如何在asp.net mvc中基于请求类型包含/排除布局页面,asp.net-mvc,Asp.net Mvc,我有一个索引视图和一个布局页面。我的要求是: 如果我通过在浏览器中点击url来调用action方法 然后布局页面不应直接应用于索引视图,但如果 使用AJAX调用action方法,那么布局页面应该是 应用于索引视图 可能吗?我搜索了很多地方,但没有找到解决方案。在索引视图中,只需在开头添加以下行即可 Layout = ((Context.Request.Headers != null) && (Context.Request.Headers["X-Requested-With"]
可能吗?我搜索了很多地方,但没有找到解决方案。在索引视图中,只需在开头添加以下行即可
Layout = ((Context.Request.Headers != null) && (Context.Request.Headers["X-Requested-With"] == "XMLHttpRequest")) ? "_Layout" : null;
这将检查ajax标头,如果未找到布局,则将其设置为null,如果是ajax请求,则将其设置为布局。您返回的是
部分视图(…)
,而不是视图(…)
(但如果需要更新布局中的所有内容,则表明您没有正确执行操作)实际上,这是我最近被问到的一个面试问题@stephenmuecke你能告诉我这里的布局是什么吗?需要在视图中声明的任何变量或其他内容。它是Views\Shared文件夹下布局页面的名称。如果主布局/母版页名为_layout,则应使用此名称