Резьбовые / Вложенные комментарии - PullRequest
1 голос
/ 22 сентября 2010

Кто-нибудь знает, как создать многопоточную / вложенную систему комментариев?Я хотел бы узнать, как сделать это для моего блога, над которым я работаю.Я просто не могу найти ничего полезного там.Кто-то наверняка должен знать, как это делается.

Ответы [ 3 ]

1 голос
/ 23 сентября 2010

Трудно поверить, что после 8 лет работы asp.net никто не удосужился написать простую статью или учебное пособие о том, как делается нечто вроде многопоточных комментариев, которые так часто используются в миллионах блогов.Поисковые системы, как обычно, не дают ничего, кроме мусора.С другой стороны, Google - бесполезная штука, вы знаете, что.

Вот почему asp.net занимает так много времени, чтобы учиться.Дело не в том, что это операция на головном мозге, а в том, что невозможно выйти за рамки того, что есть в книгах, потому что информации не существует.

Я провел целый день, думая об этом, и наконец решил проблемуиспользование одной таблицы для комментариев, две хранимые процедуры, обрабатывающие комментарии и ответы по отдельности, представление списка для отображения комментариев с отступом в том месте, к которому они принадлежат, и другое представление списка для формы комментариев.Лучше всего то, что нет ограничений на глубину потоков, и комментарии кэшируются.

В моей таблице базы данных комментариев я создал новый столбец, в котором хранится значение сортировки, вычисленное в хранимых процедурах.Для комментариев значение сортировки устанавливается равным его собственному значению идентификатора комментария, а для комментариев - значение устанавливается равным родительскому идентификатору сортировки, соединенному с собственным идентификатором комментария, разделенным точкой.Если идентификатор сортировки не имеет точек, это комментарий верхнего уровня.Одна точка равна глубине одного уровня, две равны глубине двух уровней и т. Д.

Итак, единственный код, который мне нужно было написать, - это две простые хранимые процедуры и немного C #, чтобы получить количество точек и назначить соответствующий CSSзначение для отступа.Мне не нужно было иметь несколько таблиц с внешними ключами, идентификаторами родительских и дочерних идентификаторов, сложным кодом или какими-либо экзотическими рекомендациями, обычно предлагаемыми немногими, которые фактически пытаются ответить на форумах.очарование.Правила здравого смысла!

0 голосов
/ 22 сентября 2010

Учтите, что здесь есть некоторые проблемы, по которым вам нужно будет перейти. Спам, регистрация, масштаб и пр.

Если вы хотите использовать какое-то готовое решение, подумайте:

0 голосов
/ 22 сентября 2010

Если вы принимаете предложения для редактора, как насчет использования WMD: Wysiwym Markdown Editor

WMD - это простой и легкий редактор HTML для комментариев в блогах, сообщений на форуме и базового управления контентом. Вы можете добавить ОМУ к любой текстовой области одной строкой кода . Добавить предварительный просмотр на одну строку больше. WMD работает практически во всех современных браузерах и теперь полностью бесплатен для использования.

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

public interface IComment
{
    public int ID;
    public string Body;
    public string OwnerID;
    public DateTime CreatedOn;
    ...        
}
...