页面执行后,页面中的按钮不起作用。此按钮的功能是从提供的路径中检索图像。 isPostBack的使用在这里很重要,但我没有在哪里使用它。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class pictures : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Image1.ImageUrl = "~/Images/10003253_697566723628663_1903222345_n.jpg";
Image2.ImageUrl = "~/Images/1503929_10152290013211351_1280973165_n.jpg";
Image3.ImageUrl = "~/Images/1558538_697566540295348_743334414_n.jpg";
}
}
加载页面并单击按钮后会显示以下错误消息:
2>'/'应用程序中的服务器错误。无效的回发或回调参数。使用配置或<%@启用事件验证 Page EnableEventValidation =“true”%>在一个页面中。为了安全 目的,此功能验证回发或回调的参数 事件源自最初呈现的服务器控件 他们。如果数据有效且预期,请使用 ClientScriptManager.RegisterForEventValidation方法 注册回发或回调数据以进行验证。 “
aspx代码是:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="pictures.aspx.cs" Inherits="pictures" MasterPageFile="~/MasterPage.master"%>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Image ID="Image1" runat="server" Height="200px" />
<asp:Image ID="Image2" runat="server" Height="200px" />
<asp:Image ID="Image3" runat="server" Height="200px" /><br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" is/>
</asp:Content>
答案 0 :(得分:1)
它的原因是数据被回发到服务器包含一些客户端脚本代码(主要是Javascripts),这将导致某种安全性讲道,所以默认情况下,enableEventValidation
是设置为true。
对于特定页面您可以将其设置为
<%@ Page EnableEventValidation="false" %>
或在Web.Config中,您可以使用
<pages enableEventValidation="false"/> //for all pages
相同问题
答案 1 :(得分:0)
Webcontrol“内容”是一个特别的:
用于替换母版页占位符中的控件。
你可以查看msdn:
http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.content(v=vs.110).aspx
此SO帖子包含更多详细信息:
Content control not accessbile from content page?
您可以暂时删除<asp:Content></asp:Content>
标记以查看问题是否仍然存在?
出于一致性和安全性原因,如果可以避免,最好不要更改默认的EnableEventValidation
属性值。
答案 2 :(得分:0)
你应该把第一行写成:
<%@ Page EnableEventValidation="false" %>
如果您已经拥有类似&lt;%@ Page的内容,那么只需添加其余=&gt; EnableEventValidation =&#34;假&#34; %GT;
的Web.Config:
<pages enableEventValidation="false"/>
它有助于在aspx中使用所有页面。