好的,我有一個主網頁,其中我包括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