好的,我有一个主网页,其中我包括ASCX ...渲染html.RenderPartial之间的差异和<%@寄存器
<%@ register tagname="header" tagprefix="vb" src="~/Views/Controls/Header/Header.ascx" %>
<vb:header id="pageHeader" runat="server" />
的ASCX具有使用MvcSiteMapProvider一个网站地图...
<asp:SiteMapDataSource id="SiteMapDataSource1" sitemapprovider="Secure" showstartingnode="false" runat="server" />
<asp:menu id="headerMenu" DataSourceID="siteMap" orientation="Horizontal" staticenabledefaultpopoutimage="false" runat="server" IncludeStyleBlock="false"></asp:menu>
一切都很好地工作,然后我需要的模型传递到控制,改变了母版页
html.RenderPartial("~/Views/Controls/Header/Header.ascx", Model)
现在我得到一个运行时错误“类型'Menu'的Control'2_headerMenu'必须放置在runat = server的表单标签内。”是的,我在母版页中有一个带runat = server的Form标签。
因此,有没有人知道这两种方法或任何其他指针之间的渲染差异? 在此先感谢。
我真的怀疑,你应该将asp控件(菜单,站点地图)与MVC混合使用。请将所有这些控件改为asp.net MVC。这将使代码更清洁,减少问题。 – cRichter 2010-07-20 13:30:12