私は数多くのブログを読み、パターンとプラクティスからパフォーマンスへの最良のアプローチは何かを判断しようとしています。
オプション 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 は、ビューにロジックがないため、懸念事項の分離の観点からは最善のように思えますが、子供と言うブログを読んでいるので、確実にパフォーマンスに影響を与えるので、アンチパターンのようにも思えます。アクションはパフォーマンスに影響を与えます。
どんな助けでも大歓迎です。J