Я впервые пробую MVC и пытаюсь создать очень упрощенную версию StackOverflow.У меня есть таблицы моделей / баз данных, такие как:
Users
Questions
Answers
Comments
и некоторые ViewModels этих моделей, которые я использую для представлений.Отношения между моделями:
Users 1:m with Questin, Answers, Comments
Questions 1:m with Answers, Comments
Answers 1:m with Comments
и
Users m:m Questions
Users m:m Answers
для голосов.
Как должна выглядеть моя ViewModel для страницы вопросов, которая является такой жекак эта страница, с которой вы сейчас это читаете?Страница должна быть примерно такой:
-----------------------ВопросОтветОтвет...ОтветФорма для ответа на вопрос только для зарегистрированных пользователей-----------------------и список комментариев под Вопросом и ответами
Я придумываю следующее:
public class QuestiongView
{
public QuestionShort question { get; set;}
public IEnumerable<AnswerShort> answers { get; set;}
public AnswerWritabelByUser answerByUser {get; set;} // only for logged in usesr. This is where you type your answer
}
, QuestionShort
и AnswerShort
- это классы, в которых List<Comments>
.Для голосования я бы использовал $ .ajax звонки.С тем, что я узнал до сих пор, я думаю, что это правильный способ сделать это, но это также кажется грязным.Возможно, я буду использовать частичное представление для очистки кода в View.
Итак, это правильный способ реализации MVC, есть ли у вас предложения по улучшению всего моего подхода к этой конкретной проблеме, знаю ли яо чем я говорю или я пропустил весь шаблон дизайна / концепцию MVC?