Проблема T4MVC и DisplayModeProvider с полностью определенными представлениями

У меня есть код, который обнаруживает пользовательский агент и создает новый режим отображения (т.е. «планшет» и «мобильный»)

DisplayModeProvider.Instance.Modes.Insert(1, new DefaultDisplayMode("mobile") { ContextCondition = (context => GetDeviceType(context.GetOverriddenUserAgent()) == "mobile") });

поэтому, когда я хочу вернуть представление, мне просто нужно

return View("Index")

и режим отображения добавит «Index.tablet.cshtml» или «Index.mobile.cshtml» или ничего «Index.cshtml» по умолчанию.

что хорошо в этом, так это то, что если пользовательский агент «мобильный» и нет файла «Index.mobile.cshtml», по умолчанию он будет «Index.cshtml».

это работает хорошо, но при использовании полного имени представления, как это делает t4mvc, «~/Views/Home/Index.cshtml», логика режима отображения не добавляет «планшет» или «мобильный».

есть ли способ вернуть t4mvc просто «индекс», а не полное имя?

или у вас есть другое предложение о том, как решить эту проблему и по-прежнему использовать t4mvc?

Благодарность


person KanTube    schedule 26.10.2015    source источник


Ответы (1)


Просто выберите return (MVC.YourController.Views.ViewNames.YourView)

person Sergey Arkhipov    schedule 04.05.2016