C# 在asp.net mvc布局页上使用用户控件(.ascx)时出错

C# 在asp.net mvc布局页上使用用户控件(.ascx)时出错,c#,asp.net,asp.net-mvc,webforms,user-controls,C#,Asp.net,Asp.net Mvc,Webforms,User Controls,我将Asp.net用户控件(.ascx)集成到我的Mvc布局页面中,即母版页,我使用的是razor引擎 错误:执行处理程序的子请求时出错 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper ascx. Control '1_hdfData' of type 'HiddenField' must be placed inside a form tag with runat=server.

我将Asp.net用户控件(.ascx)集成到我的Mvc布局页面中,即母版页,我使用的是razor引擎

错误:执行处理程序的子请求时出错

'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper ascx.
                  Control '1_hdfData' of type 'HiddenField' must be placed inside a form tag with runat=server.
这是我的代码:

\u Layout.cshtml:

@Html.Partial("~/UserControls/Data.ascx")
数据。ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Data.ascx.cs" Inherits="MyNameSpace.Data" %>
                 <asp:HiddenField ID="hdfData" runat="server" />
                --Rest all other asp.net server side controls---.
namespace MyNameSpace.Data
                {
                     public partial class Data : ViewUserControl
                     {
                         //Page_Load events and other code
                     }
                }
这是否就像我从
ViewUserControl
继承了用户控件(.ascx),因此无法使用asp.net控件

有人能帮我吗?


 <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Data.ascx.cs" Inherits="MyNameSpace.Data" %>
<form runat="server">
             <asp:HiddenField ID="hdfData" runat="server" />
            --Rest all other asp.net server side controls---.
</form>
--Rest所有其他asp.net服务器端控件---。
我有一个想法,但这不是好的做法

@Html.Partial("_ASCX_FILE")

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<%@ Register Assembly="SomeAssembly" Namespace="SomeNs" TagName="ASCX_FILE" %>

<ASCX_FILE:SomeControl runat="server" ID="fooControl" />

只需要在UserControls中添加表单标记我喜欢这个主题,有趣的是:)这是正确的,但我需要在我的布局页面上呈现2个用户控件,那么我把这个表单标记放在哪里?给所有表单标记赋予不同的id并使用它。我把表单标记放在2个用户控件上,但它给出的错误是:一个页面只能有一个服务器端表单标记。给两个表单标记赋予不同的id。
Suggesting again, try using pure MVC flavor. :)