Я пытаюсь получить полностью настроенную вручную встроенную форму в sitefinity 4.0, и моя проблема в том, что независимо от того, что я делаю, я не могу получить доступ к данным обратной передачи формы в коде.Моя форма является пользовательским элементом управления, и я добавил ее так, как описано здесь: http://www.sitefinity.com/40/help/developer-manual/controls-adding-a-new-control.html
После нескольких часов борьбы я создал базовую тестовую форму и все еще не могу получить доступ к обратной передаче.данные.Я также попытался добавить EnableViewState = "true" повсеместно, но данные формы все еще пустые при обратной передаче.Точно такой же пользовательский элемент управления запускает и публикует данные совершенно за пределами sitefinity.Я также попробовал другие способы доступа к данным обратной передачи и обнаружил, что Request.Form содержит нужные мне данные.Я все еще хотел бы получить доступ к своим элементам формы обычным способом, поэтому мне не нужно делать Request.Form для каждого элемента управления на странице и циклически повторять этот путь, что кажется действительно странным.
Вот код для базовой формы:
"BasicUserControl.ascx"
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="BasicUserControl.ascx.cs" Inherits="SitefinityWebApp.UserControls.Assessments.BasicUserControl" EnableViewState="true" %>
<div id="assessmentDiv" runat="server">
<asp:TextBox ID="TextBox1" runat="server" clientidmode="Static" enableviewstate="true"></asp:TextBox>
<asp:Literal ID="Literal1" runat="server" clientidmode="Static" enableviewstate="true"></asp:Literal>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
"BasicUserControl.ascx.cs" Код за
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SitefinityWebApp.UserControls.Assessments
{
public partial class BasicUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
Literal1.Text = TextBox1.Text;
}
}
}
}
Опять же, если я добавлю элемент управления с помощью метода, описанного по ссылке выше, я смогу успешно создать страницу CMS Sitefinity 4.0, перетащить элемент управления на нее, запустить страницу, перейти в код позади с помощью отладчика, нокогда VS2010 достигает строки ниже, данные формы не публикуются:
Literal1.Text = TextBox1.Text;
FYI: причина, по которой в моем коде usercontrol.ascx нет тега формывыше, потому что я получаю сообщение об ошибке при запуске формы через sitefinity, что на странице .net может существовать только один серверный тег формы (sitefinity внедряет свой собственный тег формы).
Заранее спасибо за вашу помощь!
Бен