Существует два способа (по крайней мере, я знаю), где вы можете реализовать собственные формы .Net в Umbraco (версия 4.7.x и ниже).
Шаблон на основе
Вы можете создать форму непосредственно в разметке шаблона, используя стандартные элементы управления ASP.Net и используя тег <script runat="server" language="c#">
. Это встроенное кодирование страниц, как в Visual Studio, поэтому вы отказываетесь от роскоши предварительной компиляции и т. Д.
<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
<asp:Label ID="myLabel" runat="server" />
</asp:Content>
<script runat="server" language="c#">
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.myLabel.Text = "Hello World";
}
}
</script>
Макро-Based
- Создайте свои формы в пользовательских элементах управления в Visual Studio и скомпилируйте их.
- Скопируйте
.ascx
в папку /usercontrols/
.
- Скопируйте
.dll
в папку /bin/
.
- Перейдите в Developer> Макросы в Umbraco и создайте новый Макрос
- Выберите пользовательский элемент управления из раскрывающегося списка рядом с
.Net User Control
на вкладке Macro Properties
.
- Импорт макроса в ваш шаблон. Готово!
- (Необязательно) Если ваш пользовательский элемент управления требует установки свойств, не забудьте добавить их на вкладку свойств в макросе и отобразить их.
Код вашего шаблона будет выглядеть примерно так:
<%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
<umbraco:Macro Alias="MyForm" MyProperty="Hi!" runat="server" />
</asp:Content>