我有一个名为LogOnUserControl的局部视图/用户控件,它显示在我的网站上的一个侧栏(在Site.Master中定义)中。我也有一个单独的LogOn视图,它也呈现LogOnUserControl。ASP.NET MVC:如何呈现除一个视图之外的所有视图的局部视图?
我不想在登录鉴于LogOnUserControl的两个实例,因为它只是普通的混乱,所以我现在的想法是,包括在LogOnUserControl的条件,如
// Semi-pseudocode
if (!Request.IsAuthenticated) && View.Name != "LogOn")
。
这感觉不对,因为局部视图现在知道LogOn视图。此外,我无法找到如何获得视图的名称,这增强了我做错事情的感觉! :-)
编辑:还有一个复杂的问题,就是LogOn视图和Site.Master中的侧栏都使用了相同的局部视图。
+1。带上您的母版页,并用另一个ContentPlaceHolder将当前的调用替换为LogOnUserControl。然后创建另外两个母版页,从“Site.master”嵌套的“Main.master”和“Logon.master”。 Main.master会将内容添加到新的ContentPlaceHolder,但Logon.master不会。问题解决了。 – Portman 2009-04-24 23:40:32
我跟着波特曼的评论(+1的细节!:-),但我得到一个错误“无法找到ContentPlaceHolder'MainContent'在母版页'/Views/Shared/LogOn.Master'”。我将LogOn视图设置为使用LogOn.master页面。缺少的ContentPlaceHolder在Site.Master中,LogOn.Master嵌套于...我做错了什么? – alastairs 2009-04-25 21:30:28