Spark View Engine и путаница в использовании viewdata - PullRequest
0 голосов
/ 19 февраля 2010

Я не могу понять, как использовать структуру viewdata в движке искрового представления. У меня есть следующий код в моем контроллере:

        // Retrieve the project list from the database
        var projects = from p in _context.Repository<project>()
                       orderby p.name ascending
                       select p;

        return View(projects.ToList<project>());

Этот код работает, так как у меня есть модульные тесты, возвращающие правильные проекты, и мой вид без искры работал отлично. Сейчас я пытаюсь перейти на Spark View Engine, и я просто запутался в синтаксисе. В качестве примечания, я убедился, что движок искрового обзора работает и читает мой .spark view.

Вот что я использую в моем списке list.spark:

<h2>Available Projects</h2>
<viewdata model="IList[[project]]"/>
Count: ${model.count}

При рендеринге этого представления возникает следующая ошибка:

.../List.Spark(3,16): error CS0103: The name 'model' does not exist in the current context 

Это относится к строке model.count. Почему это не работает? Я попытался передать список проектов в ViewData ["projects"] (и заменил модель в коде spark на проекты), и я получил ту же ошибку (вынуть файл model.count для projects.count).

Возможно, это что-то глупое, но я не могу понять это.

Обновление:

Ну, я исправил это. Кажется, что файл MVC2 web.config, созданный VS 2010 Beta 2, был плохим. Я использовал файл MVC2 web.config, созданный VS 2010 RC, и теперь он работает. Спасибо!

1 Ответ

1 голос
/ 19 февраля 2010

Я думаю, вы хотите это:

<h2>Available Projects</h2>

<viewdata model="IList[[project]]"/>
Count: ${ViewData.Model.Count}

или это:

<h2>Available Projects</h2>

<viewdata model="IList[[project]]"/>
<var model="ViewData.Model" />
Count: ${model.Count}

Элемент viewdata объявляет типы записей в ViewDataDictionary. Для «модели» это фактически объявление типа свойства Model в ViewDataDictionary.

Обратите внимание, что эти выражения и имена типов являются кодом C # и, следовательно, чувствительны к регистру.

РЕДАКТИРОВАТЬ: синтаксис обновлен для стабильной версии 1.0.

Ссылка - с использованием данных вида в документации

...