2014-01-29 46 views
0

我尝试通过一个asp按钮进行firean提交。我得到了'ASP.default_aspx中没有定义vor SubmitBtn_Click的错误。编译asp.net页面时出现表单提交错误

BootstrapASP.Master:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="BootstrapASP.master.cs" Inherits="Shift.BootstrapASP" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<meta http-equiv="Content-Type" content="text/html" charset="utf-8"/> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
    <title>Shift</title> 
    <link type="text/css" rel="stylesheet" href="css/bootstrap.css" /> 
    <link type="text/css" rel="stylesheet" href="css/main.css" /> 
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 
    <!--[if lt IE 9]> 
     <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> 
     <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> 
    <![endif]--> 
    <asp:ContentPlaceHolder ID="head" runat="server"></asp:ContentPlaceHolder> 
</head> 
<body> 
    <div> 
     <asp:ContentPlaceHolder ID="ContentMain" runat="server"></asp:ContentPlaceHolder> 
    </div> 
    <script src="js/jquery-1.10.2.min.js"></script> 
    <script src="js/bootstrap.min.js"></script> 
    <script src="js/interactive.js"></script> 
</body> 
</html> 

的Default.aspx:

<%@ Page Title="Shift" Language="C#" MasterPageFile="~/BootstrapASP.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Shift.WebForm1" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentMain" runat="server"> 
    <div class="container content-wrapper"> 
     <form role="form" runat="server"> 
      <div class="row"> 
       <div class="col-md-4 col-md-offset-7"> 
        <asp:LinkButton ID="SubmitBtn" runat="server" OnClick="SubmitBtn_Click" CssClass="btn btn-danger btn-lg pull-right"> 
         <span class="glyphicon glyphicon-import"></span> Senden 
        </asp:LinkButton> 
       </div> 
      </div> 
      <div class="row"> 
       <div class="col-md-4 col-md-offset-1"> 
        <h1>Set Down</h1> 
        <hr /> 
        <div id="down-form-holder"> 
         <div class="form-group"> 
          <label for="old-pc-ci">Computer CI*</label> 
          <input type="text" class="form-control" name="old-pc-ci" id="old-pc-ci" /> 
         </div> 
         <div class="form-group"> 
          <label for="old-mon-ci">Monitor CI*</label> 
          <input type="text" class="form-control" name="old-mon-ci[]" id="old-mon-ci" /> 
         </div> 
        </div> 
        <button type="button" id="old-add-monitor" class="btn btn-default btn-sm pull-right"> 
         <span class="glyphicon glyphicon-plus"></span> Monitor 
        </button> 
       </div> 
      </div> 
     </form> 
    </div> 
</asp:Content> 

在Default.aspx.cs我创建了一个事件处理程序的 “SubmitBtn_Click” Default.aspx.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace Shift 
{ 
    public partial class WebForm1 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     void SubmitBtn_Click(Object sender, EventArgs e) 
     { 

     } 
    } 
} 

回答

5

C#中的方法默认是私有的,所以您的点击处理程序从t中不可见他标记。通常的做法是让他们保护:

protected void SubmitBtn_Click(Object sender, EventArgs e) 
+0

完蛋了。我在带有说明的微软页面上阅读了其他内容,但事件在脚本标记的同一页上。所以当事件处理程序在同一页面上时,我不需要在代码后面指定它? – mnlfischer

+0

@mnlfischer,是的,你可以在'script'标记或代码隐藏中使用处理程序。不过,后台代码更适合支持和可读性,所以我会建议您坚持使用当前的方法 – Andrei

3

你的事件需要被保护,你有它被默认为私有的方式:

protected void SubmitBtn_Click(Object sender, EventArgs e) 
    { 

    } 
0
protected void SubmitBtn_Click(object sender, EventArgs e) 
{ 

} 

    <asp:LinkButton ID="SubmitBtn" runat="server" OnClick="SubmitBtn_Click" CssClass="btn 
    btn-danger btn-lg pull-right"> 
    <span class="glyphicon glyphicon-import"></span> Senden</asp:LinkButton>