Я создал довольно общий движок представления , который я создал изначально, не ориентируясь на ASP.Net MVC. Хотя сейчас, я думаю, было бы неплохо иметь его там, где его, по крайней мере, легко использовать в проектах MVC. Мне интересно, будет ли мой проект хорошо соответствовать стилю ASP.Net MVC.
Проблема, с которой я столкнулся, заключается в том, что мой движок просмотра генерирует все во время компиляции через шаблоны T4. Это означает, что по большей части все типизировано статически. Большая часть MVC, похоже, немного не типизирована.
Так что для некоторого представления вы могли бы сгенерировать этот код:
class MyView{
public string Foo{get;set;}
public int Bar{get;set;}
public string Render(){
return "This is my view: "+Foo+(string)Bar;
}
}
И из-за того, как он работает, даже если есть файл views / FooView.html, он может быть обработан в класс с именем MyView
.
Так как же лучше всего назначить ViewData
для произнесения Foo
и Bar
для MyView? Должен ли я просто наложить ограничение, что вы можете использовать только одно поле в представлениях (в основном это ViewData
) или?
Другая серьезная проблема, которую я вижу, заключается в том, что MVC почти полностью основан на файлах. Когда вы говорите RenderView("MyView",data);
, он будет искать в / views / файл с именем MyView.aspx или чем-то еще (вы можете изменить то, где он выглядит и, конечно, расширение файла). Проблема в том, что MyView
мог быть скомпилирован из файла с именем FooView.html
. Должен ли я просто генерировать огромный список для каждого доступного представления с их отображениями от имени класса к имени файловой системы? Или есть лучший способ?
Примечание. Поскольку я генерирую все представления (и, возможно, могу генерировать механизм представления MVC) из шаблона T4, это означает, что я могу писать огромные списки и другой чрезвычайно утомительный или плохой код. Но я чувствую, что в этом случае есть лучший способ, чем огромный список, и что при ведении списка будут основные проблемы.