我正在编写一个 ASP.Net 应用程序,它允许匿名的人发布祈祷和其他人评论/确认为这些对象祈祷。祷告存储在具有唯一标识符的 SQL Server 2008 数据库中。
它们使用转发器控件和隐藏字段来存储行的 ID 来显示。中继器中的每个项目都包含一个按钮,该按钮允许匿名人员祈祷,并且该按钮作为数据库内的计数器递增。
基本上,一旦用户确认他/她正在为这个项目祈祷,我想禁用该按钮并显示该行的总数。
据我了解,我可以将数据存储在 cookie/会话中,因此到目前为止我能想到的唯一解决方案是将行的 ID 存储到这些对象之一中,然后在我的转发器控件中使用自定义逻辑来检查看看有哪些。
谁能提供一些关于完成此类事情的最有效方法可能是什么的见解?如果除了 cookie 或 session 之外还有其他选项,我也很高兴听到。
编辑:我正在尝试使用以下逻辑来实现此解决方案。
代码隐藏:
protected bool IsPrayerInCookie(string prayerId)
{
if(Request.Cookies["prayers"][prayerId] != null)
{
return false;
}
else
{
return true;
}
}
ASPX:
<span class="confirmed_prayers"><span class="trans">
<asp:Label runat="server" ID="lblConfirmedPrayers" Text='<%# Eval("ConfirmedPrayers") %>' />
people have prayed for this.</span></span>
<% if(!IsPrayerInCookie(Eval("PrayerId").ToString()))
{
%>
<asp:LinkButton ID="btnPray" CssClass="but_styled" runat="server" TabIndex="8" CommandName="IncrementPrayer">
<span><span class="check">
Pray for This</span></span></asp:LinkButton>
<%
}
%>
然而,这不起作用。谁能帮我弄清楚如何使 if 语句在 aspx 文件中工作以正确调用具有正确 ID 的方法背后的代码?