在MonoRail中,您可以使用CancelLayout()来不渲染布局。在ASP.NET MVC中,影响布局的唯一方法似乎是将布局名称传递到View()方法,如View(“myview”,“mylayout”);只有看起来传递null或空字符串不会做我想要的。禁用ASP.NET MVC中的布局?
我最终创建了一个空的布局,只是呈现内容,但这似乎很愚蠢。
“不渲染布局”就是这个意思。在Web表单视图引擎中,他们称布局为“母版页”。我想渲染只需我的动作的视图,并不包括它与主页面。
在MonoRail中,您可以使用CancelLayout()来不渲染布局。在ASP.NET MVC中,影响布局的唯一方法似乎是将布局名称传递到View()方法,如View(“myview”,“mylayout”);只有看起来传递null或空字符串不会做我想要的。禁用ASP.NET MVC中的布局?
我最终创建了一个空的布局,只是呈现内容,但这似乎很愚蠢。
“不渲染布局”就是这个意思。在Web表单视图引擎中,他们称布局为“母版页”。我想渲染只需我的动作的视图,并不包括它与主页面。
似乎在ASP.NET MVC的版本,我问这是不可能的。
如果您不想渲染内容到输出流,只需从您的操作中返回一个EmptyResult而不是ViewResult。
他不想要一个空的结果,他想要一个没有布局的结果。 – Matt 2008-10-21 13:42:40
啊,那个编辑后来被添加了。 – 2008-12-16 21:16:49
您的视图是否需要拥有masterpage--它们是WebForms的可选功能?此外,你是否在你的视图中呈现HTML?
因为您的内容控件不一定按正确的顺序,所以在没有masterpage的情况下渲染一个写入masterpage的ASPX页面是没有意义的。
而不是使用普通视图,创建一个局部视图。这些可以单独使用,与CancelLayout()非常相似 - 或者您可以将它们合并到引用Master Page的视图中,在这种情况下,它将成为完整的布局。如果您想发送回部分HTML块以响应AJAX请求,它们也很有用。
在MVC 3,你可以删除主布局代码:
@{
Layout = "";
}
以现在的眼光开始补充一点:
@{
Layout = null;
}
如果你想样式表来保持,则需要在该视图中添加引用。
在控制器操作中,我们可以设置所需的布局。
return View("Index", "_LAYOUT_NAME", model);
要为所有的网页禁用此功能,请编辑_ViewStart.cshtml(根, '若干意见' 文件夹下),并确保它包含以下内容:
@{
Layout = null;
}
并且为任何特定视图启用模板,可以将以下内容添加到。CSHTML文件该视图,以使模板:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
没有任何运气尝试设置masterPage
参数""
或null
并返回一个View
(像我没有)?
那就试试这个,用PartialView
代替:
public ActionResult Article(string id)
{
return PartialView("~/Areas/Store/Views/CustomerService/" + id);
}
我需要做的这个加载JS从异步视图的内容。
我在正确的答案看看它说:“这似乎是在ASP.NET MVC的版本,这是不可能的”
您正在使用哪个版本?因为我找到了解决办法(我有同样的问题),您的问题
因此,禁用布局的页面,你应该使用:
@{
Layout = null;
}
而且,作为建议here,这可能会解决你的问题:
public ActionResult Index()
{
SampleModel model = new SampleModel();
//Any Logic
return View("Index", "_WebmasterLayout", model);
}
如果你不能解释你正在寻找什么,你将不会得到任何其他答案。 “不呈现布局”是什么意思? – Will 2008-10-21 14:09:14
这个问题对我来说很清楚。 – 2009-02-06 15:31:32
必须创建一个空白布局可能看起来很愚蠢,但webforms引擎如何知道如何订购asp.net内容部分? 我觉得这是webforms viewengine所面临的问题。 – Min 2009-05-08 15:09:52