Этот вопрос выглядит в основном, чтобы быть в состоянии понять поведение бритвой в этом случае:Создает ли бритву несколько экземпляров объекта с зацикленным частичным представлением?
Скажем, у меня есть этот вид под названием HelloWorld.cshtml:
@model List<String>
<div>Hello world</div>
<h2>Greetings from the whole world!</h2>
@foreach(String i in Model)
{
@Html.Partial("GetGreeting", i)
}
И в частичном виде GetGreeting.cshtml I имеют следующее:
@model String
@{ GreetingGetter Greet = new GreetingGetter(); }
<div>@Greet.foo(Model)</div>
Как распределить ресурсы в таком случае, как этот? Я считаю, что это будет выделять новый GreetingGetter с каждой итерацией, но я не особо этого хочу, особенно потому, что объект в сценарии реальной жизни может быть достаточно тяжелым, чтобы снизить производительность с таким количеством бессмысленных распределений.
Как бритва лечить это под капотом? Будет ли он ссылаться на код внутри «@ {...}» каждый раз внутри цикла foreach? Есть ли способ без изменения модели повышения эффективности этой операции?
Thanks,
Спасибо, в моем случае мне придется использовать ViewData для этого, так как я не могу сделать его статическим, но я хотел избежать этого, если бы был шанс. –