Я хочу создать общий элемент управления, где я хочу сгенерировать разметку в соответствии с ролью зарегистрированного пользователя. Для этого мне нужно вызвать метод в классе модели. Это правильный способ сделать это в ASP.NET MVC, поскольку я слышал, что мы должны строго выделять Model и Views. Пожалуйста, помогите.Крит общий вид с использованием метода модели
ответ
Модели и виды должны быть разделены только до тех пор, пока направление связи не будет двигаться только в одном направлении. Как правило, представление будет знать о базовой модели, но не наоборот.
Именно поэтому ASP.NET MVC имеет концепцию строго типизированного вида, где виды могут быть строго привязаны к определенному типу модели.
Как таковая, я не вижу проблем с подключением View к члену класса Model.
В то же время это нормально, чтобы читал с вашей модели через вспомогательное расширение. это требуется для создания большого количества разметки? если это так, я бы поставил под вопрос, является ли это оптимальным подходом?
Вы можете использовать «asp: loginview» и отобразить частичные виды отсюда? Элементы управления ASP.NET, которые не полагаются на viewstate, отлично работают в MVC.
Пример:
<asp:LoginView id="LoginView1" runat="server">
<RoleGroups>
<asp:RoleGroup Roles="Admin">
<ContentTemplate>
<%= Html.RenderPartial("MyPartial"); %>
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
На мой взгляд, View не должен знать, что такое роль должны видеть. Это функция контроллера. Точно так же Модель не должна относиться к тому, как View использует свою информацию.
Итак, вот как я его проектирую.
View запрашивает информацию. Контроллер должен знать, кто пользователь, и что они должны видеть. Контроллер запрашивает у модели представление правильного материала для представления.
Приятно, если бы вы могли проектировать систему так, чтобы она могла проявляться без модели или вида.
В MVC Futures у вас также есть Html-помощник RenderAction, который позволяет вашему зрителю звонить и действовать, а затем отображает результат этого действия в пределах собственной маркировки.
Это полезно для выполнения таких функций, как меню и т. Д., Но это не строго MVC, но это очень практично.
Но лучший способ использовать будет зависеть от html, который вам нужно вывести, где вам нужно вывести его и почему. Если бы вы могли рассказать нам немного больше о Html, который вам нужно сделать, и его цель была бы хорошей, и мы можем вам помочь.
Но одно можно сказать точно, что модели не должны выводить Html для рендеринга.
- 1. Общий вид с использованием скобок
- 2. Пропустить общий общий вид
- 3. Обратный общий LinkedList с использованием метода подкачки
- 4. Вырезать вид с использованием метода drawRect
- 5. SpringMVC lifecycle-- общий вид
- 6. Umbraco - Крит список товаров
- 7. Написание модели метода тестов с использованием minitest
- 8. Джанго: предотвратить шаблон с использованием метода модели
- 9. django-rest-framework: общий вид и разрешение на основе метода
- 10. Общий вид в бритве
- 11. Найти общий вид сетки
- 12. django: общий вид удаления
- 13. Общий вид во взглядах
- 14. Django 1.5 Общий вид
- 15. Общий вид через действия
- 16. Общий инвариантный вид
- 17. Общий вид таблицы Javafx
- 18. Sunchronizing вид модели и вид
- 19. Общий вызов метода с использованием java-отражения api
- 20. Как получить общий тип возвращаемого значения метода с использованием отражений
- 21. Вызов метода модели с контроллера
- 22. общий метод с использованием BitConverter.GetBytes
- 23. Как разделить приложения django, если общий вид
- 24. Преобразование функции django общий вид в общий общий класс
- 25. Общий класс с ограниченным ограничением метода?
- 26. Частичный вид кеша с использованием Umbraco CachedPartial для другой модели
- 27. Общий вид в нескольких UIViewControllers
- 28. Для новичков: Тест с RSpec в модели с использованием метода
- 29. Django Query sort-insensitive с использованием метода модели с PostgreSQL
- 30. Django с именем urls, общий вид?