2012-04-04 22 views
0

フォームを含むASPXページがあります。そのフォームには名前とIDが与えられています。 aspxページにはリンク先のマスターページもあります。ASPXフォームの名前変更を防止する

ページが提供されると、フォームの名前とIDが異なります。たとえば、名前が「uploadForm」から「Form1」に変更されます

フォームの動作も変更されているように見えます。

この原因は何か、どうすれば防止できますか?

ASPXページのオープニングラインはこれです:

<%@ Page Language="C#" MasterPageFile="~/Modal.Master" AutoEventWireup="true" CodeBehind="UploadPage.aspx.cs" Inherits="WebConnect.UploadPage" %> 

そして、formタグがある:

<form id="uploadForm" name="uploadForm" enctype="multipart/form-data" action="Upload.ashx" method="post"> 

務めたとき、それはのように表示されます。

<form id="Form1" action="UploadPage.aspx" method="post"> 


更新日:ここにはエントリーがありますページのE本体:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <form id="uploadForm" name="uploadForm" enctype="multipart/form-data" action="Upload.ashx" method="post"> 
     <div> 
      File: 
      <input id="file1" name="fileField" type="file" /> 
      <input id="objectID" name="objectID" type="hidden" /> 
      <input id="fieldID" name="fieldID" type="hidden" /> 
      <input id="submitType" name="submitType" type="hidden" /> 
      <progress id="uploadProgress" value="10" max="100" display="none"></progress> 
      <button id="Html5Submit" type="button" onclick="AsyncSubmit()">Submit</button> 
      <button id="Html4Submit" type="button" onclick= "SyncSubmit()">Submit</button> 
     </div> 
    </form> 
    <div id="Html5Upload"> 
    </div> 
</asp:Content> 
+0

キャッシュされたページではありませんか。 – Vache

+0

私はちょうどこれをテストして、それは私のために正常に働いた。 MasterPageに基づくASPX。フォームrunat = "server"を持つMasterPageとフォームタグを持つASPX。フォームの名前が変更されていないので、Vacheが述べるように、キャッシュはここでは誤りがあるかもしれません。フレームワーク3.5、VS 2010 – dash

+0

@dashアップロードフォームがフォームの外にある場合にのみ動作します。 –

答えて

1

レンダリング制御リネームは長い時間のためにASP.Netでよく知られた課題であった、とあなたはWebフォームでそれを防ぐために行うことができます全体の多くはありません。ただし、Asp.Net要素のClientIdプロパティを使用すると、JavaScriptが要素を検索する方法を変更できます。

var formId = '<%= uploadForm.ClientID %>'; 

出典:JavaScriptのでHow to stop ASP.NET from changing IDs in order to use jQuery

は、だけではなく、'uploadForm'の変数を使用して、あなたが行ってもいいです。

+0

問題は、フォーム要素の名前を変更するだけでなく、Actionパラメータを変更していることです。 –

1

あなたはネストされたフォームを持っていると思われますが、これは許可されていません。表示される最初のフォームはのマスターページであり、2番目のuploadFormはブラウザによって削除されます(uploadFormの終了タグはForm1の終了タグになります)。

アップロードフォームForm1フォームの外に移動する必要があります。

+0

ネストされたフォームはありません。完全なソースについての私の更新を参照してください。 –

+0

マスターページのコンテンツも表示できますか? –

0

私は最初の質問は本当にあなたの意図であると思いますか?私はコメント/回答に従おうとしていますが、私はそれがはっきりしているとは思わない(しかし、私はそれを見逃しているかもしれません)。

あなたが同じページ(デフォルトのWebフォームの動作)にポストバック以外のどこかに提出したい場合は、次の処理をサーバ側である場合

  • 、あなたはできるだけ多くのボタンコントロール(runat="server")を持つことができます独自のpostbackurl
  • @RobRodiの答えは、サーバー側のコントロール
  • とクライアント側(Javascriptの)処理を行いたい場合は、標準のHTMLボタン(HTMLボタンではなく、runat="server")を使用することができます使用することができますと、各が必要で、クライアントスクリプトを介してそのクリックイベントを完全に処理する(nフォームアクションに関連するもの)。
関連する問題