在MonoRail中,您可以只使用CancelLayout()来呈现布局.在ASP.NET MVC中,影响布局的唯一方法似乎是将布局名称传递给View("myview","mylayout")等View()方法; 只是看起来传递null或空字符串不能做我想要的.
我最终创建了一个只渲染内容的空布局,但这看起来很傻.
"不渲染布局"就是指.在Web窗体视图引擎中,它们将布局称为"母版页".我想渲染只是我的行为的观点,而不是与母版页围绕着它.
在MVC 3中,您可以使用以下命令删除主布局代码:
@{ Layout = ""; }
在视图的开头添加:
@{ Layout = null; }
如果要保留样式表,则需要在该视图中添加对它的引用.
要为所有页面禁用此功能,请编辑_ViewStart.cshtml(在根目录下,在"Views"文件夹下),并确保它包含以下内容:
@{ Layout = null; }
要为任何特定视图启用模板,可以将以下内容添加到该视图的.cshtml文件中,以启用模板:
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
在Controller操作中,我们可以设置所需的布局.
return View("Index", "_LAYOUT_NAME", model);
/sf/ask/17360801/
而不是使用普通视图,创建局部视图.然后可以单独使用它们,它的行为与CancelLayout()非常相似 - 或者您可以将它们合并到引用母版页的视图中,在这种情况下它将是完整的布局.如果要发送回部分HTML块以响应AJAX请求,它们也很有用.