2012-03-26 4 views
3

У меня есть частичный вид, который я создал, называемый «noteEditor». Это отображается внутри другого частичного представления под названием «summary». Я хочу, чтобы частичный вид «noteEditor» отображался только на странице один раз, независимо от того, сколько раз отображается «итоговое» частичное представление.Выполнение кода только один раз в ASP.NET MVC 3

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

@{ 
    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»] он возвращается нуль.

Есть ли более «глобальная» (на всю страницу и только за этот запрос) область?

Благодаря

ответ

3

Вы можете использовать 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; 
} 
+0

Это был трюк. Благодаря! –

Смежные вопросы