Система голосования, как SO - C #, Asp.net, Webforms - PullRequest
4 голосов
/ 03 марта 2010

Есть много подобных вопросов, но ни один из них не касается веб-форм и c #, которые я нашел.

У меня есть Linq-to-SQL, таблица голосования, в которую я хочу записать записи голосования (Voteup / down / time / ipaddress / user и т. Д.)

Это способ сделать это или есть лучший способ:

Создание обновлений imgs, скрытие идентификатора объекта, за который голосуют где-то там (где?), Когда вы нажимаете img, jquery отправляет вас на страницу ashx, которая возвращает true, если она смогла создать запись голосования, а затем установить IMG для цвета / оттенков серого на основе ответа страницы Ashx?

Бонусные баллы за примеры или ссылки на примеры = D

PS. Я вижу много мнений по этому вопросу в короткие сроки. Я опубликую свой окончательный код сегодня вечером.

Ответы [ 2 ]

1 голос
/ 03 марта 2010

Я думаю, у вас есть общая идея. Вы можете сделать это с помощью традиционных WebForms AJAX или использовать jQuery для вызова $ .ajax (), чтобы сделать все - зарегистрировать голосование, вернуть результат и изменить изображение.

Вот структура для подхода jQuery:

Javascript:

function registerVote(voteType){
   $.ajax(function (){
          //get the name of the parent DIV 
          //(using the jQuery selector), which is the ID of the thing you're voting on
          //Use Success and Error callbacks to register a success or error. 
          //On success, change the selected vote image to the highlighted version
   })

}

HTML:

<div id="ThingToVoteOn1">
<img src="voteUp" onclick="registerVote('UP')">
<img src="voteDown" onclick="registerVote('DOWN')">

</div>
1 голос
/ 03 марта 2010

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

Например, наличие таблицы пользователей с отношением один-ко-многим к таблице вопросов. Если вы хотите, чтобы они (пользователи) тоже могли задавать вопросы, вам нужна таблица с вопросами для каждого пользователя, это еще одно отношение один ко многим. Затем вам также понадобится таблица голосов, которая имеет отношение один ко многим с таблицей вопросов и таблицей пользователей, чтобы вы могли отслеживать, какой пользователь проголосовал по вопросу и какой вопрос был.

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

Это одна вещь. Затем сделайте свои изображения для голосования кликабельными, так что используйте событие onclick с JQuery, которое должно быть довольно простым.

Используйте AJAX для постбэка при нажатии на изображение, чтобы вам не приходилось делать пост на всей странице каждый раз, когда пользователь голосует. Это также увеличит пользовательский опыт. На AJAX с ASP.NET есть множество учебных пособий.

Надеюсь, это поможет!

...