【问题标题】:ASP.NET MVC migrating master page - Problems with web control logicASP.NET MVC 迁移母版页 - Web 控制逻辑问题
【发布时间】:2012-06-27 10:11:44
【问题描述】:

我正在尝试将现有的 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 计数器;)。 所以我不知道如何继续......

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

【问题讨论】:

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


    【解决方案1】:

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

    例如

    在控制器上:

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

    在视图中:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      相关资源
      最近更新 更多