Дабы не забыть о свежедостигнутом в рамках MVC — законспектирую это здесь.
- НИКОГДА не называть параметры функций в контроллере «action» и «controller». Это запутывает маршрутизацию и приводит к ошибке An item with the same key has already been added.
- Для использования strongly-typed ActionLink, RenderAction, RenderPartial и прочего зареференсить Microsoft.Web.Mvc. Добавить @using во все вьюшки можно через Web.config и Views\Web.config
- Использование strongly-typed (строго типизированных) ссылок и рендерингов:
@(Html.ActionLink<HomeController>(x=>x.Index(param1), «Текст ссылки»)) и
@{Html.RenderAction<HomeController>(x=>x.Index(param1));}ActionLink обязательно заключать в круглые скобки, RenderAction и RenderPartial — в фигурные, иначе работать не будет
- Тестить контроллер — MvcContrib.TestHelper для тестирования редиректов, для тестирования возвращаемой модели кастовать ActionResult в ViewResult и проверять ViewResult.Model;
- Использование @helper внутри вьюшки: ссылка; для глобального использования создать папку App_Code и поместить вьюшку с хэлперами туда. воркэраунд для использования Html.ActionLink в App_Code-хэлперах: ссылка