Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在asp.net mvc中基于请求类型包含/排除布局页面_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何在asp.net mvc中基于请求类型包含/排除布局页面

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"]

我有一个索引视图和一个布局页面。我的要求是:

如果我通过在浏览器中点击url来调用action方法 然后布局页面不应直接应用于索引视图,但如果 使用AJAX调用action方法,那么布局页面应该是 应用于索引视图


可能吗?我搜索了很多地方,但没有找到解决方案。

在索引视图中,只需在开头添加以下行即可

 Layout = ((Context.Request.Headers != null) && (Context.Request.Headers["X-Requested-With"] == "XMLHttpRequest")) ? "_Layout" : null;

这将检查ajax标头,如果未找到布局,则将其设置为null,如果是ajax请求,则将其设置为布局。

您返回的是
部分视图(…)
,而不是
视图(…)
(但如果需要更新布局中的所有内容,则表明您没有正确执行操作)实际上,这是我最近被问到的一个面试问题@stephenmuecke你能告诉我这里的布局是什么吗?需要在视图中声明的任何变量或其他内容。它是Views\Shared文件夹下布局页面的名称。如果主布局/母版页名为_layout,则应使用此名称