C# .net剃须刀分析器错误
因此,我有以下代码:C# .net剃须刀分析器错误,c#,.net,razor,C#,.net,Razor,因此,我有以下代码: @foreach(var subMenuHead in Model) { if(subMenuHead.SubItem.Count() > 0) { <text> <!--'@subMenuHead.ItemName' dropdown menu--> <div id="@subMenuHead.ItemName.ToLower()_dropdown" class="dr
@foreach(var subMenuHead in Model)
{
if(subMenuHead.SubItem.Count() > 0)
{
<text>
<!--'@subMenuHead.ItemName' dropdown menu-->
<div id="@subMenuHead.ItemName.ToLower()_dropdown" class="dropdown smallscreen_hide dropdown_menu">
<ul class="dropdown">
</text>
foreach(var subMenuItem in subMenuHead.SubItem)
{
<text>
<li class="dropdown">
<a href="@subMenuItem.SubItemLink" class="dropdown">
@subMenuItem.SubItemName
</a>
</li>
</text>
}
</ul>
</div>
}
}
@foreach(模型中的var子菜单头)
{
if(subnumhead.SubItem.Count()>0)
{
foreach(子菜单头.子项中的var子菜单项)
{
-
}
}
}
在主页的以下部分中呈现为分部:
@model IEnumerable<LangSite_151209.Models.MenuItem>
@{
ViewBag.Title = "Test";
}
<h2>Test</h2>
@Html.Partial("../Shared/_Menu", Model)
@model IEnumerable
@{
ViewBag.Title=“测试”;
}
试验
@Html.Partial(“../Shared/_菜单”,模型)
其本身在布局页面的以下部分中呈现:
<!-- The logo and constant contact data will be displayed in here. Also the regular text of other pages -->
@RenderBody()
<!-------------------------------------------------------------------------------------------------------->
@RenderBody()
当我运行代码时,我得到一个解析器错误:
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Encountered end tag "div" with no matching start tag. Are your start/end tags properly balanced?
Source Error:
Line 78: }
Line 79: </ul>
Line 80: </div>
Line 81: }
Line 82: }
解析器错误
描述:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息,并适当修改源文件。
分析器错误消息:遇到没有匹配开始标记的结束标记“div”。您的开始/结束标签是否正确平衡?
源错误:
第78行:}
第79行:
第80行:
第81行:}
第82行:}
但是,当我在注释掉结束ul和div行的情况下运行代码时,我可以看到开始标记,但看不到结束标记,如下所示:
<div id="about_dropdown" class="dropdown smallscreen_hide dropdown_menu">
<ul class="dropdown">
<li class="dropdown">
<a href="/Home/About" class="dropdown">
About us
</a>
</li>
<li class="dropdown">
<a href="/Home/Testimonials" class="dropdown">
Testimonials
</a>
</li>
<!--'Apply' dropdown menu-->
<div id="apply_dropdown" class="dropdown smallscreen_hide dropdown_menu">
<ul class="dropdown">
<li class="dropdown">
<a href="/Home/About" class="dropdown">
About us
</a>
</li>
<li class="dropdown">
<a href="/Home/Testimonials" class="dropdown">
Testimonials
</a>
</li>
<!-------------------------------------------------------------------------------------------------------->
-
-
-
-
其中,下面注释的破折号行是_布局页面中@RenderBody()语句之后的部分
很明显,开头的div和ul标记在那里,那么为什么我在放入结尾标记时会出现解析器错误呢?根据您的代码,看起来您实际上并不需要
标记(因为您的代码和HTML之间的转换似乎足够直接,Razor可以理解)
您可以尝试删除
标记,因为如果不需要它们,它们通常会导致一些打嗝。您应该能够使用以下内容而不会出现问题:
@foreach (var subMenuHead in Model)
{
if (subMenuHead.SubItem.Count() > 0)
{
<!--'@subMenuHead.ItemName' dropdown menu-->
<div id="@subMenuHead.ItemName.ToLower()_dropdown" class="dropdown smallscreen_hide dropdown_menu">
<ul class="dropdown">
@foreach (var subMenuItem in subMenuHead.SubItem)
{
<li class="dropdown">
<a href="@subMenuItem.SubItemLink" class="dropdown">
@subMenuItem.SubItemName
</a>
</li>
}
</ul>
</div>
}
}
@foreach(模型中的var子菜单头)
{
if(subnumhead.SubItem.Count()>0)
{
@foreach(子菜单头.子项中的var子菜单项)
{
-
}
}
}
基于您的代码,看起来您实际上并不需要
标记(因为您在代码和HTML之间的转换似乎很简单,Razor可以理解)
您可以尝试删除
标记,因为如果不需要它们,它们通常会导致一些打嗝。您应该能够使用以下内容而不会出现问题:
@foreach (var subMenuHead in Model)
{
if (subMenuHead.SubItem.Count() > 0)
{
<!--'@subMenuHead.ItemName' dropdown menu-->
<div id="@subMenuHead.ItemName.ToLower()_dropdown" class="dropdown smallscreen_hide dropdown_menu">
<ul class="dropdown">
@foreach (var subMenuItem in subMenuHead.SubItem)
{
<li class="dropdown">
<a href="@subMenuItem.SubItemLink" class="dropdown">
@subMenuItem.SubItemName
</a>
</li>
}
</ul>
</div>
}
}
@foreach(模型中的var子菜单头)
{
if(subnumhead.SubItem.Count()>0)
{
@foreach(子菜单头.子项中的var子菜单项)
{
-
}
}
}
尝试删除所有
标记,使div打开和关闭位于同一范围尝试删除所有
标记,使div打开和关闭位于同一范围取出标记。你说得对,我不需要它们。谢谢取出标签很有效。你说得对,我不需要它们。谢谢