我一直在阅读大量博客,并试图确定从模式和实践到性能的最佳方法是什么。
选项 1 我有一个部分视图 Index.cshtml,其中包含以下内容。
@if (Model.SomeBooleanProperty)
{
<div>A chunk of HTML</div>
}
选项 2 我有一个部分视图 Index.cshtml,其中包含以下内容。
@Html.Partial("SomeBooleanProperty", Model)
并且该部分视图具有布尔逻辑。
@if (Model.SomeBooleanProperty)
{
<div>A chunk of HTML</div>
}
选项 3 我有一个部分视图 Index.cshtml,其中包含以下内容。
@Html.Action("AControllerMethod", "Controller", Model)
和 AControllerMethod 如下
[ChildActionOnly]
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)]
public ActionResult AControllerMethod(SomeModel model)
{
if (model.SomeBooleanProperty)
{
return View(model);
}
else
{
return new ContentResult() { Content = String.Empty };
//return null
}
}
然后返回的部分将如下所示(无条件逻辑)
<div>A chunk of HTML</div>
从关注点分离的角度来看,选项 3 对我来说似乎是最好的,因为我的观点没有逻辑,但在我看来它也是一种反模式,因为它肯定会影响性能,因为我一直在阅读说孩子的博客行动影响绩效。
任何帮助表示赞赏。Ĵ