加载后页面中的按钮不起作用

时间:2014-09-26 06:44:04

标签: c# asp.net

页面执行后,页面中的按钮不起作用。此按钮的功能是从提供的路径中检索图像。 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";

    }
}

加载页面并单击按钮后会显示以下错误消息:

  '/'应用程序中的服务器错误。      

无效的回发或回调参数。使用配置或<%@启用事件验证   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>

3 个答案:

答案 0 :(得分:1)

它的原因是数据被回发到服务器包含一些客户端脚本代码(主要是Javascripts),这将导致某种安全性讲道,所以默认情况下,enableEventValidation是设置为true。

对于特定页面您可以将其设置为

<%@ Page EnableEventValidation="false" %>

或在Web.Config中,您可以使用

<pages enableEventValidation="false"/>  //for all pages

相同问题

Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page

asp.net: Invalid postback or callback argument

答案 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)

你的aspx文件中的

你应该把第一行写成:

<%@ Page EnableEventValidation="false" %>

如果您已经拥有类似&lt;%@ Page的内容,那么只需添加其余=&gt; EnableEventValidation =&#34;假&#34; %GT;

的Web.Config:

<pages enableEventValidation="false"/>

它有助于在aspx中使用所有页面。