MVC Razor代码无法在MVC3中运行但在MVC 4中完美运行?为什么会发生这种代码呢?

时间:2014-01-21 18:21:33

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有一个最初在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">

1 个答案:

答案 0 :(得分:0)

这与Razor引擎的演变有关。我注意到从MVC4到MVC5的类似问题。

例如, 在View中的MVC4中,您可以说以下

@using My.Namespace

但是在MVC5中你会收到一个错误,因为你必须在结尾处加一个分号

@using My.Namespace;

似乎每个新版本的Razor都“接近”C#风格。

所以在你的情况下,我相信你的Razor区域中有一个;漂浮的地方(可能就在你发布的代码之上?)。