简体   繁体   English

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

[英]Getting Error in using user control(.ascx) on asp.net mvc layout page

I am integrating Asp.net User control(.ascx) in my Mvc Layout page ie is master page and i am using razor engine. 我在我的Mvc布局页面中集成了Asp.net用户控件(.ascx),即是母版页面,并且我正在使用剃刀引擎。

Error :Error executing child request for handler 错误 :执行处理程序的子请求时出错

'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerWrapper ascx.
                  Control '1_hdfData' of type 'HiddenField' must be placed inside a form tag with runat=server.

This is my code: 这是我的代码:

_Layout.cshtml: _Layout.cshtml:

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

Data.ascx : Data.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---.

Data.ascx.cs : Data.ascx.cs

namespace MyNameSpace.Data
                {
                     public partial class Data : ViewUserControl
                     {
                         //Page_Load events and other code
                     }
                }

Is it like if i am inheriting User Control(.ascx) from ViewUserControl so i cant use asp.net control? 就像我从ViewUserControl继承用户控件(.ascx) ViewUserControl因此我无法使用asp.net控件吗?

Can anybody help me with this? 有人可以帮我吗?

 <%@ 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>

I am sharing one idea, but it's not good practice. 我分享一个想法,但这不是一个好习惯。

@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" />

Possibly above solution can sort out your issue. 上面的解决方案可能会解决您的问题。

Suggesting again, try using pure MVC flavor. :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM