ASP.Net MVC3 - Передайте разметку бритвы в качестве параметра

У меня есть помощник под названием EditableArea , который предоставляет пользователю редактируемый во время выполнения div (через JS).Помощник EditableArea проверяет, существует ли в БД редактируемая область (не относящаяся к MVC Area ) с указанным идентификатором. Если да, то он отображает HTML-код области, в противном случае он отображает разметку по умолчанию, указанную в качестве параметра helper:

@Html.EditableArea(someId, "<p>Click to edit contents</p>")

Все работает нормально, но я бы хотел изменить это так, чтобы разметка по умолчанию указывалась не в виде строки, а в синтаксисе бритвы, например:

@using (Html.EditableArea(someId))
{
    <p>Click to edit contents</p>
}

Или что-то подобное, например @section работает в MVC3.

Как я могу этого добиться?

Я могу создать IDisposable , который в своем Dispose закрывает TagBuilder и т. Д., Но при таком подходе разметка все равно будет отображаться (я могу очистить отображаемое содержимое в Dispose () , но блок кода все равно будет работать без надобности, чего я бы хотел избежать).

Есть ли другой способ передать блок бритвы помощнику, который может или не может быть на самом деле визуализирован?

23
задан Boris B. 7 May 2019 в 20:17
поделиться