ASP.NET MVC迁移母版页 - Web控制逻辑问题

时间:2012-06-27 10:11:44

标签: asp.net-mvc controls migration master-pages webforms

我正在尝试将现有的ASP.NET Webforms 3.5应用程序迁移到ASP.NET MVC 3应用程序中。这意味着,我尝试使用控制器逻辑和剃刀视图分别将web控件和代码隐藏转换为现有的.aspx页面。 目前我专注于母版页(为所有其他剃刀视图获取模拟layout.cshtml)。 例如,我已经替换了像asp:Menu,asp:LoginView with partial views和@ Html.Action来调用控制器动作,运行一些已经在该masterpage的代码隐藏中的代码并返回该局部视图。

但是现在我迷失了许多已经设置在/可见的母版网页控件,具体取决于背后的代码。例如,母版页中有两个asp:面板已根据访问页面切换/可见。 问题是在剃刀视图中我没有Web控件,在控制器中我无法设置属性/属性(如private int counter;)。 因此,我不知道如何继续......

我希望你对这种情况有一些想法或经验。 请询问是否缺少任何信息。

1 个答案:

答案 0 :(得分:0)

您可以在Controller中设置Model或ViewData的属性,然后使用@if

在Razor视图中使用它们

e.g。

在控制器上:

public ActionResult Index()
{
    ViewBag.Foo = IsThisFoo();
    View();
}

在视图中:

@if (ViewBag.Foo) {
    <p>This is foo</p>
}
else
{
    <p>This is bar</p>
}

nb:最佳做法是将其作为视图的强类型模型的一部分