Response.Redirect如果启用,则没有任何内容(ASP.NET)和EventValidation返回错误
我有一个页面,其中一个选择动态生成的按钮。 ASPX代码如下:
<div>
<asp:Repeater ID="rptrHalls" runat="server" OnItemCommand="Choose_Hall">
<ItemTemplate>
<asp:Button ID="btnChooseHall" runat="server"
CommandName="<%# Container.DataItem %>" Text="<%# Container.DataItem %>"
/>
</ItemTemplate>
</asp:Repeater>
</div>
加载页面时,以下代码用于生成按钮:
' Show which halls they are eligible for.
Dim dbHalls As New pbu_housingDataContext
'Dim gender As String = Session("gender").ToString
Dim selectedHalls = (From sh In dbHalls.Rooms _
Where sh.gender = Session("gender").ToString _
Where sh.current_occupancy < sh.max_occupancy _
Where sh.is_available = True _
Select sh.building_name).Distinct()
rptrHalls.DataSource = selectedHalls
rptrHalls.DataBind()
当用户单击动态生成的按钮时,将触发以下代码:
Public Sub Choose_Hall(ByVal Sender As Object, ByVal e As RepeaterCommandEventArgs)
Session("Hall") = e.CommandName.ToString
Response.Redirect("select_room.aspx")
End Sub
当我第一次尝试运行代码时,我收到了“无效的回发/回调参数”的错误消息。我将ASPX页面设置为具有enableEventValidation =“false”属性,并尝试再次运行它。它生成页面很好但是当我点击一个动态生成的按钮时,它就好像它正在加载一些东西,然后只是把我带回到select_hall.aspx(所有这些代码都是一个页面),当(如上所示)它应该带我到select_room.aspx。
没有找到相关结果
已邀请:
2 个回复
奥李
不是你认为的类型。请尝试
,然后单步执行调试器并查看返回的CommandName。我的感觉是它不是字符串而是某种对象,但很难从LINQ查询中分辨出来。
坝镰补翔奋