Выполнение кода только один раз в ASP.NET MVC 3 - PullRequest
3 голосов
/ 26 марта 2012

У меня есть созданное частичное представление, которое называется "noteEditor". Это отображается внутри другого частичного представления, называемого «резюме». Я хочу, чтобы частичное представление «noteEditor» отображалось на странице только один раз, независимо от того, сколько раз было выполнено частичное представление «резюме».

Я надеялся сделать что-то вроде в сводном частичном представлении:

@{
    var viewDataNotesEditorRegistered = ViewData["notesEditorRegistered"];
    var notesEditorRegistered = (bool)(viewDataNotesEditorRegistered ?? false);
}
@if (!notesEditorRegistered)
{
    <div class="notesdialog" style="display: none;">@Html.Partial("NotesEditor")</div>
    ViewData["notesEditorRegistered"] = true;
}

однако, каждый раз, когда этот код называется ViewData ["notesEditorRegistered"], он возвращается в ноль.

Существует ли более "глобальная" (на всю страницу и только во время этого запроса) область действия?

Спасибо

1 Ответ

3 голосов
/ 26 марта 2012

Вы можете использовать HttpContext для этой цели вместо ViewData:

@{
    var viewDataNotesEditorRegistered = ViewContext.HttpContext.Items["notesEditorRegistered"];
    var notesEditorRegistered = (bool)(viewDataNotesEditorRegistered ?? false);
}
@if (!notesEditorRegistered)
{
    <div class="notesdialog">@Html.Partial("NotesEditor")</div>
    ViewContext.HttpContext.Items["notesEditorRegistered"] = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...