C# 如何删除asp.net mvc3中的子操作
如何删除asp.net mvc3中的子操作。我的意思是我有部分观点和主要观点。在url栏中,当我进入子页面时,它不应该加载 假设我的主页是 本地主机:5820/Home/Index 然后当我进去的时候 本地主机:5820/Home/Index 然后它应该可以工作,并且子项是 本地主机:5820/主页/关于 然后当我进去的时候 本地主机:5820/主页/关于 那么它就不应该打开了。如何在asp.net mvc中做到这一点。我有几个这样的页面,我已经显示在如何可以页面C# 如何删除asp.net mvc3中的子操作,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,如何删除asp.net mvc3中的子操作。我的意思是我有部分观点和主要观点。在url栏中,当我进入子页面时,它不应该加载 假设我的主页是 本地主机:5820/Home/Index 然后当我进去的时候 本地主机:5820/Home/Index 然后它应该可以工作,并且子项是 本地主机:5820/主页/关于 然后当我进去的时候 本地主机:5820/主页/关于 那么它就不应该打开了。如何在asp.net mvc中做到这一点。我有几个这样的页面,我已经显示在如何可以页面 我纠正了这个问题事实上,您的A
我纠正了这个问题事实上,您的ABOUT页面是主页中的一个链接并不意味着它是一个子操作,事实上,从MVC的角度来看,它们处于同一级别,是您作为一名程序员,通过提供导航命令来实现hiereachies的使用 现在,您可以做的是:
public class MyReportsModel{
public bool displaySection1 { get; set;}
//other data
}
在视图中,您可以通过以下方式更改演示文稿:
@{
if(@Model.displaySection1){
//display as normal
}
}
当然,在填充模型时,应根据需要在每个控制器中设置该属性:
MyReporstModel thisView = new MyReportsModel();
thisView.displaySection1 = true;
// set all properties necessary to display
// if the controller knows that this partial view won't be displayed then
thisView.displaySection1 = false;
但这不再是一个技术问题,而是一个架构问题
希望有帮助,看起来您正在查找属性:
[ChildActionOnly]
public ActionResult About()
{
return View();
}
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult About()
{
var model = ...
return PartialView("_About", model);
}
它禁用了对localhost:5820/Home/About
的直接调用-只有渲染为局部视图才可用
根据需要进行更新-使用ChildActionOnly
属性标记所有应返回局部视图的操作:
[ChildActionOnly]
public ActionResult About()
{
return View();
}
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult About()
{
var model = ...
return PartialView("_About", model);
}
在索引视图中,通过以下方式调用这些操作(从Home
controller和其他控制器):
阿尔瓦多:我刚才举了个例子。我将有不同的控制器,用于不同的查看页面。在主页中,我需要放置部分视图。部分页面不应该像我上面所说的那样加载好吧,我明白了,在这种情况下,您是否尝试在视图中添加一些简单的逻辑来更改该行为,例如,一个名为“isDisplayed”的bool属性,您可以从控制器中填充该属性,因此无论何时调用该部分视图,视图都会知道如何操作,它可以是默认值TRUE,只有在例外情况下,您才将属性设置为FALSE。我认为您的问题是在表示层,因此在我看来,创建一个有用的模型来更改视图的行为是完全有效的。如何设置isDisplayed字段我更新了答案,以防您想听到我对该问题的看法。让我知道你对它的看法:)+1从我的部分,我不知道那一个,当你有不应该被调用的视图时,它非常方便directly@lazyberezovsky正是我需要的。我会解释的。我将有一些主页作为视图创建。因为我使用了5个标签。每个选项卡应包含5个选项卡。5个选项卡将具有5个不同的局部视图。每个部件都有自己的控制器。在控制器中,我将给出index方法[childactiononly]属性。但这是一个例外。我的主要目标是不要在外面打开页面。它只能在选项卡中打开。希望你现在明白了。