Декларативный AJAX "Controls" в MVC - PullRequest
1 голос
/ 25 июня 2011

Я хочу создать повторно используемый элемент управления ajax в MVC .NET с помощью RAZOR.

В моем примере это простое текстовое поле ajax и список, в котором пользователь фильтрует список, набрав его в текстовом поле.при первом вызове я бы отображал как текстовое поле, так и список, используя мой вид бритвы.при последующих вызовах AJAX я хотел бы ТОЛЬКО визуализировать (теперь отфильтрованный) список.

идея 1: использовать оператор @if для условной визуализации кода.

проблема: бритва не выглядит условнонаписано HTML.например, ошибка, когда за тегом <div> не следует закрывающий </div>.

идея 2: используйте токены @section для создания частей моего элемента управления и затем вызывайте RenderSection в том же файле, как это необходимо.

проблема: бритва не позволяет RenderSection вызыватьразделы на той же странице

я знаю, что могу условно отобразить html как строки, но я хотел воспользоваться разборчивостью разметки бритвы и придерживаться протоколов разработки.

1 Ответ

1 голос
/ 25 июня 2011

Вы должны иметь возможность выводить теги <div> в блоке Razor без соответствующего тега </div>, окружив его <text>. Причина в том, что Razor использует закрывающий тег, чтобы знать, когда нужно перетащить обратно в режим анализа кода:

@if (myCondition)
{
    <text>
        <div>
    </text>
}

Что касается материала Section, вы можете достичь того, чего хотите, используя Templated Razor Delegates , например:

@{
Func<dynamic, object> b = @<strong>@item</strong>;
}

// ...

<span>This sentence is @b("In Bold").</span>

См. Блог Фила Хаака , чтобы узнать больше об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...