0

umbracoでは、カスタムユーザーコントロールにマスターテンプレートを使用する必要があることを学びました。カスタムフォームと送信ボタンがあります。「送信」ボタンを押すとメールを送信するコントロールを作成しました。コントロールは基本的に名前、住所などのすべてのフィールドを取得します。新しいテンプレートを作成してマクロを挿入すると機能します。

ただし、マスターテンプレートで使用しようとすると、機能しません。送信ボタンはページを更新しますが、メールを送信するC#の部分には移動しません

そして私がこれをするなら

     <form name="myform" target="_self" method="post" action="index">

インデックスページに移動しますが、電子メールは送信されません。

ただし、クリーンなテンプレートまたは新しいテンプレートで機能します。umbraco 4のマスターテンプレートでカスタムコントロールを使用する方法はありますか?編集-これは私がマクロを使用している方法です

<form name="myform" target="_self" method="post" action="index">    
   <umbraco:Macro Alias="sendMail" runat="server"></umbraco:Macro>
</form>
4

2 に答える 2

1

ASP.NET WebForms を使用していると仮定します。マスター テンプレートとフォームを含むマクロも使用する Umbraco サイトがあります。これは正常に動作するはずです。私が気づいたのは、無視される「アクション」属性を設定したことです。また、「method」属性のデフォルト値は「post」であるため、これらの両方のプロパティを設定する必要はありません。

ASP.NET Webフォームは常にそれ自体に投稿しているため、ここで「ターゲット」プロパティを削除できます。これらの「不要な」属性を削除しても問題が解決するかどうかはわかりません。

そうでない場合、ネストされた .NET フォームを使用していますか? それはエラーと奇妙な動作もスローしています。

于 2012-12-18T22:14:01.650 に答える
1

runat="server"コードを見ると、フォーム タグの属性が欠落しているように見えます。

<form name="myform" runat="server">    
   <umbraco:Macro Alias="sendMail" runat="server"></umbraco:Macro>
</form>

属性を使用するrunat=serverことで、フォーム タグは正しい属性でレンダリングされます。1 つのページに1 つのフォームしか持てないことに注意runat="server"してください。

W3Schoolsには、この概念に関する詳細情報があります。

于 2012-12-18T12:40:15.197 に答える