这是ascx:
1 0 0 0 0 0 0 ,
这是新的cshtml:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<NavigationEntryViewModel>>" %>
<%@ Import Namespace="WebShop.Models.ViewModels" %>
<% if(Model.Count() > 0){ %>
<ul class="navigation">
<% foreach(NavigationEntryViewModel entry in Model)
{
Html.RenderPartial("Entry", entry);
}
%>
</ul>
<% } %>
使用ascx运行项目很好,但是当我使用cshtml运行它时出现错误
仅在引用a的内容页面中允许内容控件 母版页
我尝试将布局设置为null,但这不起作用。我试图评论Html.RenderPartial,这也不起作用。
视图由
调用@using WebShop.Models.ViewModels
@model List<NavigationEntryViewModel>
@if(Model.Count() > 0)
{
<ul class="navigation">
@foreach(NavigationEntryViewModel entry in Model)
{
Html.RenderPartial("Entry", entry);
}
</ul>
}
其中entries是NavigationEntryViewModel的列表。
我输了,能帮忙吗?
答案 0 :(得分:1)
您的项目似乎同时具有ASPx视图引擎页面和Razor视图引擎视图。虽然MVC允许混合它们,但我看到这种方法的所有情况都会引起其他问题。 无论如何,如果要在项目中同时使用两个视图引擎,请遵循以下提供的建议:
ASP.NET MVC 3: Using multiple view engines in same project
Combining ASP.Net MVC 3 Razor and ASPX View Engines in One Project
答案 1 :(得分:0)
对此的解决方案非常简单......
我将所有文件转换为cshtml,重命名旧文件。问题是,“旧”视图引擎仍然试图加载一些文件。
我不确切知道为什么,但在禁用它之后,它运行正常。因此,当从aspx切换到cshtml时,尽快禁用旧的viewengine以避免那些讨厌的错误。
谢谢你,弗拉基米尔。