我正在尝试将现有的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;)。 因此,我不知道如何继续......
我希望你对这种情况有一些想法或经验。 请询问是否缺少任何信息。
答案 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:最佳做法是将其作为视图的强类型模型的一部分