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

查看代码,您似乎缺少runat="server"表单标签上的属性。

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

通过使用该runat=server属性,表单标签将使用正确的属性呈现。请注意,您只能runat="server"在一个页面上拥有一个表单。

在W3Schools上有更多关于这个概念的信息

于 2012-12-18T12:40:15.197 回答
1

我假设您使用的是 ASP.NET WebForms。我有 Umbraco 网站,其中我还使用主模板和包含表单的宏。这应该可以正常工作。我注意到你设置了被忽略的“action”属性。此外,“method”属性的默认值为“post”,因此您无需同时设置这两个属性。

一个 ASP.NET Webform 总是发布到自己,所以你可以在这里删除“目标”属性。我不确定删除这些“不需要的”属性会解决您的问题。

如果没有,您是否使用嵌套的 .NET 表单?这也是抛出错误和奇怪的行为。

于 2012-12-18T22:14:01.650 回答