0

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

但是现在我迷失了许多已设置为/可见的母版页的 Web 控件,具体取决于背后的代码。例如,母版页中有两个 asp:panels 已根据访问的页面切换/可见。问题是在 razor 视图中我没有 Web 控件,而在控制器中我无法设置属性/属性(如私有 int 计数器;)。所以我不知道如何继续...

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

4

1 回答 1

0

您可以在 Controller 中设置 Model 或 ViewData 的属性,然后在 Razor 视图中通过 @if 使用这些属性

例如

在控制器上:

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

在视图中:

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

注意:最佳实践是将其作为视图的强类型模型的一部分

于 2012-12-17T17:39:42.920 回答