C# 内容页控件(mv)-->;母版页访问

C# 内容页控件(mv)-->;母版页访问,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,是否可以从母版页访问位于内容页中的控件(使用内容占位符,更精确地说是多视图控件) 情况是,我在母版页上有一个带有按钮的菜单 现在在我的内容页面中,我有一个内容占位符。 其中包含多个视图的多视图位于其中 如果我按下菜单(母版页)中的一个按钮,它应该会打开内容占位符区域中显示的适当视图(及其控件) 我已经将activeViewIndex设置为0,但是我得到了各种各样的wierd行为。 我必须在某个地方对ActiveViewIndex++做些什么,但似乎什么都不起作用 编辑:: string a =

是否可以从母版页访问位于内容页中的控件(使用内容占位符,更精确地说是多视图控件)

情况是,我在母版页上有一个带有按钮的菜单

现在在我的内容页面中,我有一个内容占位符。 其中包含多个视图的多视图位于其中

如果我按下菜单(母版页)中的一个按钮,它应该会打开内容占位符区域中显示的适当视图(及其控件)

我已经将activeViewIndex设置为0,但是我得到了各种各样的wierd行为。 我必须在某个地方对ActiveViewIndex++做些什么,但似乎什么都不起作用

编辑::

string a = Request.Querystring["one"]
string b = Request.QueryString["two"]
if ( a == "addOne") // where addone is a redirection to the content page from the master page button
{
   mvMultieView.SetActiveView(vView1);
}
else
if ( b == "addTwo")
{
    mvMultieView.SetActiveView(vView2);
}
有什么建议吗?
亲切问候。

我和我的团队完成这项任务的方式(我不知道这是最好的方法,但它是有效的)是使用查询字符串(就像你在上一个问题中看到的那样)。我们建立了一个名为
iView
的标准QS变量,该变量将确定相关视图的名称(不一定是控件名称本身,而是内容控件将响应的某个关键字)。因为我们所有的页面/控件都有一个它们继承自的页面基类,所以我们在基类中放置了一个方法(在我们的示例中,它是在页面级别,但在您的示例中,控件级别可能会起作用),该方法负责获取请求的视图。在控件中,我们将有一个机制(可能是开关)来设置activeView。在某些情况下,我们只使用控件的实际ID(因为它是一个需要混淆的谜),并完全避免切换

http://www.mydomain.com/mypage.com?iView=mySecondView

partial class MyControl : System.Web.UI.WebControl
{
    // blah blah control stuff

    public string getRequestedView()
    {
        return (Request.QueryString["iView"]) ? Request.QueryString["iView"] : String.Empty;
    }
}

...

protected void Page_Load(object sender, EventArgs e)
{
    View myView = myMultiView.FindControl(this.getRequestedView());
    if(myView != null)
        this.MyView.SetActiveView(myView);
}

使用find控件可以很容易地做到这一点

View myView = (View)this.Master.FindControl("PlaceHolderFullMain").FindControl("PlaceHolderMain").FindControl("Mymultiview")

您是否在母版页或内容页中进行了此更改? 因为我也有同样的问题

我在母版页中有链接按钮,我需要在内容页中激活视图控件。 内容页不是当前加载的页


这个方法对我的解决方案有帮助吗?

Ty请回答。但是我已经有3个字符串请求。querystring-->视图出现的3个不同页面。但是我如何将它链接到这个“iView”变量中呢?“注意。@Tonz-由于每个浏览器窗口只能显示1个页面,每个多视图只能显示1个视图,因此此iView变量成为全局构造。您使用的是什么版本的.Net?我可以模拟一个我正在谈论的快速示例项目并发布它。为Joel加油!,asp 4.0。但真正奇怪的是,只有第一个按钮工作正常,而我的第二个按钮只显示空白区域。甚至在从头开始所有代码之后。@Tonz-我在这里发布了一个示例解决方案:。它非常原始,只对Response.Redirect(因为查询字符串是传递机制)和超链接进行操作。请在您的帖子中。