#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