Нужен совет для ASP.NET MVC2 Newsletter Project - PullRequest
0 голосов
/ 14 мая 2010

Я новичок в ASP.NET MVC2. Но я хочу разработать просто сайт новостей. Основная проблема, которая меня поразила, заключается в том, как правильно использовать шаблон MVC в новостях и списке комментариев.

Например:

У меня есть NewsController и действие Подробности внутри. И два модельных класса Новости и Комментарии . Я хочу показать все комментарии, принадлежащие этой новостной записи и textarea для добавления новых комментариев. Я показываю все это содержимое в / Новости / Подробности /

Как я могу это сделать? Я попытался использовать PartialViews в подробном представлении: один для добавления комментария и другой для списка комментариев. Я полностью передал объект комментария ViewData ["Comment"] . Но у меня есть проблемы с моими моделями (думаю, я не могу использовать две модели в View)

Снова. Как я могу отобразить отдельный пост + комментарии + добавить представление комментариев на одной странице, используя ASP.NET MVC2?

Другим примером является stackoverflow.com. Вот вопрос + ответы + написать ответ. Мне нужна такая же структура

1 Ответ

1 голос
/ 14 мая 2010

@ ck3g, не волнуйтесь, это на самом деле проще, чем вы думаете.

Прежде всего, да, вы можете передать две модели для просмотра. Вам просто нужно свернуть их в третий класс и передать третий класс обратно в представление;

  • класс A () {}
  • класс B () {}
  • Класс C () {общедоступный A a; общедоступный B b}

Передайте класс С. на ваш взгляд.

Если бы класс B был всеми вашими комментариями, то у меня было бы частичное представление, в котором B был бы его моделью. Затем я бы сделал foreach для модели и вызвал другое частичное представление для визуализации отдельного комментария. это облегчает стилизацию и рефакторинг позже.

Я бы также включил частичное представление в его собственный div, чтобы вы могли заменить содержимое позже после вызова ajax.

Чтобы добавить комментарий, у меня снова будет частичное представление, и когда вы нажмете кнопку отправки, я сделаю вызов jquery для actionresult, сохраню комментарий и затем перечитываю все комментарии из базы данных. затем в вашем коде c # верните частичное представление назад к вызову jquery, используя RenderPartial("partialviewname", commentsModel);.

вернувшись на землю javascript, вы можете заменить все содержимое созданного ранее комментария родительского div новым html, и там у вас есть комментарии.

Что вы, возможно, захотите сделать сейчас, это исследовать это в NerdDinner , а затем задавать более конкретные вопросы.

Удачи и веселья.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...