2017-02-22 3 views
0

Webフォームアプリケーションでサーバーサイドコントロールを使用しています。これで私はHTML要素とサーバー側要素をフォームの外側に追加しますが(asp:content)、そのページの本文に追加します。サーバー側(ボタンクリック時)では、コントロールの値/テキストがnullを返します。制御がasp:contentタグの外に保持されているときにnullを返すための特別な理由はありますか?フォームの外側にあるが本体に残っている場合、値/テキストはサーバーサイドコントロールでnullになる

私はそのは、そのフォームの中が、なぜ私はちょうど私がpage.Later経由にテキストボックスを追加した。ここの下に更なるプロセスのためのサーバ側のイベントに任意の提案 ため おかげ値をとる投稿おりません保たれない場合があります知っていますスクリプトをbodyタグに追加します。今、その戻りヌル

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CheckboxIssue._Default" %> 


    <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 

    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 


<script> 
     $("#MainContent_TextBox2").appendTo("body"); 

    </script> 

}

サーバ側

protected void btn_Click(object sender, EventArgs e) 
    { 
     var text1 = TextBox1.Text; 
    } 
+0

あなたの問題を理解しないでください。あなたの問題を解読するためのコードを書いてください。 –

+0

私は自分のコントロールをフォームではなくbodyタグの中に入れています。サーバー側のクリックイベントでその戻り値null –

+0

コードを追加thnx –

答えて

1

側のサーバーを確認しながら、彼らは理由のためのWeb フォームそれを呼びました。概念は、フォーム内にサーバーコントロールを保持し、サーバー側のハンドラーを使用してUIイベントに常にポストします。したがって、Webフォームを使用している場合は、そのルールに従わなければなりません。

レンダリングされたフォームの外に配置されたコントロールが表示されることがありますが、aspxエンジンはポストバックの値を選択しません。

関連する問題