在asp.net mvc布局页面上使用用户控件(.ascx)时出错
本文关键字:控件 用户 ascx 出错 mvc net asp 布局 | 更新日期: 2023-09-27 18:23:46
我正在我的Mvc布局页面中集成Asp.net用户控件(.ascx),即主页,我正在使用剃刀引擎。
错误:执行处理程序的子请求时出错
'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper ascx.
Control '1_hdfData' of type 'HiddenField' must be placed inside a form tag with runat=server.
这是我的代码:
_Layout.cs.html:
@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---.
数据.ascx.cs:
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>
我分享了一个想法,但这不是一个好的实践。
@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" />
也许上述解决方案可以解决您的问题。
Suggesting again, try using pure MVC flavor. :)