1

我有一个基本视图的 MVC 应用程序:

myapp.com/category

并切换到第二个:

myapp.com/category/list

应用程序用作独立的应用程序,也可以在其他应用程序中使用到 iframe 中,其中 src 是:myapp.com/category。我想在 iframe 中使用时不显示页眉,我该如何实现?我试图添加查询字符串 myapp.com/category?show=false,并将其设置为 iframe src,但是当我切换到第二个视图时,参数未传递。

4

2 回答 2

1

将主视图分成两个部分视图。

然后,在调用主/外部应用程序时,调用仅包含内容的局部视图。

调用常规原生应用程序时,调用包含部分视图(标题和内容)的 VIEW。

于 2012-09-07T19:44:17.200 回答
1

您可以创建一个辅助方法来构建将show参数保持在适当位置的 URL。例如:

public static string GetModifiedUrl(this UrlHelper helper, string url)
{
    string qstring = helper.RequestContext.HttpContext.Request.QueryString["show"];
    if (!string.IsNullOrEmpty(qstring)) url += "?show=" + qstring;
    return url;
}

然后在视图中,例如:

<a href='@Url.GetModifiedUrl(Url.Action("Index", "Home"))'>Home</a>

另一种选择是在第一个请求时为会话添加一个值,然后使用它。即,在控制器中放置一些逻辑,如下所示:

var qs = Request.QueryString["show"];
if (!string.IsNullOrEmpty(qs)) 
{
    Session["show"] = qs;
}

然后在视图中,使用@Session["show"]代替@Request.QueryString["show"]来决定是否显示标题。

于 2012-09-07T20:45:49.893 回答