2013-04-18 14 views
6

私はこの小さな問題を抱えています... 私はこのasp.netのウェブサイトを持っています。 私はメニューを持っており、すべてhtmlとcssで終わっています。 ホームをクリックすると、ajaxは他のコンテンツを指定されたdiv要素に読み込みます。 100%働いています。jQuery AJAXとASP.NET

div要素に読み込まれたコンテンツには、ボタンがあります。 ASP.NETボタン。

ボタンをクリックすると、「リソースが見つかりません」というメッセージが表示されます。エラー。

紛失しているものがあります。コンテンツのdivにロードされた

//Load the Home page on click. 
$(document).ready(function() { 
    $('.home').click(function() { 
     $("#content").load("html/home/home.aspx"); 
    }); 
}); 

今aspxページ、ボタンを表示し、btnAdd:あなたは、HERESにAJAXを理解しない場合

<asp:Panel ID="pnlAddNewBlog" runat="server"> 
    <asp:TextBox ID="txtAddNewBlog" runat="server" TextMode="MultiLine"></asp:TextBox> 
    <br /> 
    <asp:Button ID="btnAdd" runat="server" Text="Add" /> 
</asp:Panel> 

私はそのボタンをクリックし

、エラー表示されます。

私が達成したいのは、ユーザーがボタンをクリックすると、txtAddNewBlogのテキストがデータベースに追加されることです。今私はC#を使用して達成することができます...しかし、このエラーが私の方法である場合。何か案は?

+0

'html/home/home.aspx'は存在しますか?ブラウザが送信しているネットワーク要求を調べてみてください。そのURLに移動してそのURLが存在することを確認します。 – Danny

+0

はい、それは存在します。なぜなら、ajaxはhome.aspxのすべてのコンテンツを#contentにロードし、それを見ることができるからです。ボトルトンをクリックするとこれは、コンテンツをロードするajaxを持っていないときに機能します...しかし、Ajaxが入ってくると、それ以上は動作しません。 –

+1

'#content 'は他の形式の中にありますか?もしそうなら、あなたは他のページを読み込むときにhtml構造体を壊します。 – Aristos

答えて

1

問題は、formが作成されることになります。その要求を行うと、ASP.NETは完全なパスではなく、ターゲットがhome.aspxのフォームを作成します。しかし、そのフォームを別のレベルのHTMLページに投函しています。

フォームポストを行うと、ブラウザは2つ上のレベルであり、それが見つからないと考えて、home.aspxにポストしようとします。

これを行う良い方法があるかどうかわかりません - ASP.NETはこの種のことを処理するつもりはありません。あなたはIFRAMEをすることができます。 home.aspxコンテンツをユーザーコントロールにラップし、ASP.NETフォームを外部ページのままにすることができます。または、フォームのターゲットを操作して適切な場所に投稿することができます。しかし、私はそれらのいずれかが楽しいとは思わない。

+0

ウェブフォームを作成して、単に "Response.Redirect"してページ全体をリロードする方が良いですか? –

+0

私の意見は、現在のアーキテクチャでは、AJAX-ifyよりも実際にリダイレクトするのが最善の方法でしょう。ユーザーはページのリロードを処理する必要がありますが、Webのほとんどはそのように動作します。それを避けたいのであれば、ASP.NET WebFormsページライフサイクルなしでソリューションを構築することをお勧めします。シングルページアプリケーションは一般的に非常にJavaScript集約型なので、従来のWebFormsアプリケーションとはアーキテクチャが大きく異なります。あなたのサーバーコードは、クライアントコードのナビゲーションを残して、従来のマークアップと投稿の作成に対応できます。 –