【问题标题】:Voting System Like SO - C#, Asp.net, Webforms投票系统,如 SO - C#、Asp.net、Webforms
【发布时间】:2010-03-03 17:13:11
【问题描述】:

有很多类似的问题,但我发现没有一个涉及 webforms 和 c#。

我有 Linq-to-SQL,一个投票表,我想在其中记录投票记录(Voteup/down/time/ipaddress/user 等)

这是这样做的方法还是有更好的方法:

制作 updown imgs,当您单击 img jquery 时将被投票对象的 id 隐藏在某处(在哪里?),如果它能够创建投票记录,则返回 true 然后设置根据 ashx 页面的响应,img 的颜色/灰度?

示例或示例链接的奖励积分 =D

PS。我在很短的时间内看到了很多关于这个的观点。我将在今晚发布我的最终代码。

【问题讨论】:

    标签: c# asp.net webforms voting


    【解决方案1】:

    我想你已经大致了解了。您可以使用传统的 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>
    

    【讨论】:

    • 问题:我的 ashx 应该返回什么?另外,有没有办法发回数据,以便我知道它是否是投票/投票撤消?
    • 我想我的问题是什么时候成功:开始运行?当我的处理程序返回任何东西时?所以我可以传回参数,而不仅仅是成功/失败
    • 忽略我之前的两个陈述。然后我唯一不知道的是如何触发错误:当我的 ashx 遇到问题时,在 $.ajax 中。但我正在努力;)
    【解决方案2】:

    我会按照你说的方式做,但是在数据库中我会更多地使用关系数据库的特性。

    例如让 users 表与 questions 表具有一对多的关系。如果您希望他们(用户)也能够提出问题,您需要一个包含每个用户问题的表格,即另一个一对多关系。然后,您还需要一个与 questions 表和 users 表具有一对多关系的 votes 表,这样您就可以跟踪哪个用户对问题进行了投票以及它是哪个问题。

    最重要的是,如果你正确使用关系数据库系统,它会让你更轻松地在后台跟踪事物,从而为用户提供更好的体验。

    这是一回事。然后让您的投票图像可点击,因此使用 onclick 事件和 JQuery 应该非常简单。

    点击图片时使用 AJAX 进行回发,因此您不必每次用户投票时都在整个页面上进行发布。这也将增加用户体验。 有很多关于 AJAX 和 ASP.NET 的教程。

    希望对你有所帮助!

    【讨论】:

    • 很高兴听到我在正确的轨道上。我敢肯定,一旦我开始实施它,我会在这里提出一个更具体的问题。谢谢! =D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2015-01-08
    • 1970-01-01
    • 2011-10-25
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多