Не удается отобразить представление в TinyWeb framework

#c# #.net #spark-view-engine #tinyweb

#c# #.net #spark-view-engine #tinyweb

Вопрос:

Я пытаюсь отобразить простое представление с помощью TinyWeb Framework и Spark view engine.

Среда — Visual Studio 2011 developer preview и .net 4.5

Рендеринг шаблона без привязки к модели работает нормально. Однако, когда я привязываю модель, она больше не работает.

Я получаю эту ошибку: имя ‘Model’ не существует в текущем контексте.

Обработчик:

 public class IndexHandler
{
    Route route = new Route("/");

    public IResult Get()
    {
        var model = new { message = "Hello World" };
        return View.Spark(model, "Views/base.spark");
    }
}
  

Вид:

 <html>
  <head>
    <title>This is a test</title>
  </head>
  <body>
    <p>${Model.message}</p>
  </body>
</html>
  

Ответ №1:

Вы используете анонимный объект, который, насколько мне известно, работать не будет, вы можете использовать либо полный класс модели, либо динамический объект.

 var model = new MyModel { message = "Hello World" };
  

А затем иметь <viewdata model="MyModel"> в представлении или,

 dynamic model = new { message = "Hello World" };
  

А затем укажите <viewdata model="dynamic"> в представлении.

Комментарии:

1. Установка полного класса модели сработала. Не удалось заставить динамическую модель работать.

Ответ №2:

Вам не нужно сообщать spark, что это за модель?

например

 <viewdata currentProduct="Product"/>
  

смотрите здесь: http://invalidcast.com/2011/05/tinyweb-series-4-views-model-binding