C# razor中的写入条件是否已被弃用?

C# razor中的写入条件是否已被弃用?,c#,asp.net-core,razor,.net-core,asp.net-core-mvc,C#,Asp.net Core,Razor,.net Core,Asp.net Core Mvc,在控制器中,我使用ViewBag向razor页面返回一个值。根据ViewBag的值,我显示了一些局部视图,如下所示: @if (ViewBag.CourseName == "Physics") { <partial name="_ExpPhysicsPartial"/> } @if (ViewBag.CourseName == "Chemistry") { <partial name="_ExpChemistryPartial"/> } @if(Vie

在控制器中,我使用ViewBag向razor页面返回一个值。根据ViewBag的值,我显示了一些局部视图,如下所示:

@if (ViewBag.CourseName == "Physics")
{
    <partial name="_ExpPhysicsPartial"/>
}

@if (ViewBag.CourseName == "Chemistry")
{
    <partial name="_ExpChemistryPartial"/>
}
@if(ViewBag.CourseName==“物理”)
{
}
@如果(ViewBag.CourseName==“化学”)
{
}

就安全目的而言,这是一种不受欢迎的技术吗?

不受欢迎,但也不是首选。最好填充数据模型并将其传递给视图。这有几个优点,一个重要的优点是通过传递数据模型来捕获编译时与运行时的问题,而不是直接在视图中使用ViewBag,因为它是动态的。波斯特解释了更多。希望这能有所帮助。

我总是尽量让
视图变得尽可能愚蠢。让
控制器
建立适当的模型。