我有一个最初在MVC3中制作的mvc3应用程序。从那时起,它的工作正常。最近我们创建了一个新的部分(目录为MVC3应用程序)。
我试图在MVC3.it中运行相同的代码但是在MVC4中运行失败但很好。这是有问题的代码。
<ul>
@{
foreach (TestManager.TestSummary latest in latests.GetRange(0, 3))
{
<li>
<div class="short">
<div class="short_holder">
@if (latest.HasThumbnail == PostManager.ImageStatus.HasImage)
{
<a href="@(latest.URL)" title="@(latest.Title)">
<img class="image" width="128px" height="80px" style="overflow:hidden;" alt="@(latest.Title)" src="@(Globals.POST_THUMBNAIL_PATH + "/" + latest.ID + ".png")" />
</a>
}
<h3>
<a href="@(latest.URL)" title="@(latest.Title)" class="hoveranchor">
@(latest.Title.BlahBlah(50))
</a>
</h3>
@(latest.Excerpt.BlahBlah(105))...
</div>
</div>
</li>
}
}
</ul>
此代码在MVC4应用程序中运行正常,但它向我展示了一些问题。我在PC上工作的另一个页面工作正常,但是当我尝试从服务器上获取它时它永远不会完全加载。该页面仍在加载。
我在这里向您展示一页的代码。如果你检查那么它看起来很清楚。我运行它,它只在MVC4中工作。 MVC3(我们需要部署的地方)不会使我们的代码工作。
从一些SO /论坛帖子看起来MVC3和MVC3更新是2个不同的版本。这种事情对这篇文章有什么意义吗?
我的主要目的是让这个线程弄清楚为什么这段代码在MVC4中工作但在MVC3中不工作。
给定的代码给了我这个错误
Compiler Error Message: CS1525: Invalid expression term ';'
Line 54: <li>
Line 55: <div class="short">
Line 56: <div class="short_holder">
答案 0 :(得分:0)
这与Razor引擎的演变有关。我注意到从MVC4到MVC5的类似问题。
例如, 在View中的MVC4中,您可以说以下
@using My.Namespace
但是在MVC5中你会收到一个错误,因为你必须在结尾处加一个分号
@using My.Namespace;
似乎每个新版本的Razor都“接近”C#风格。
所以在你的情况下,我相信你的Razor区域中有一个;
漂浮的地方(可能就在你发布的代码之上?)。