asp.net-mvc-3 – 在“@”字符后面出现意外的“foreach”关键字

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 在“@”字符后面出现意外的“foreach”关键字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个局部视图在剃刀。当我运行它,我得到以下错误 – 似乎像Razor陷入思考我在写代码无处不在。

Unexpected “foreach” keyword after “@” character. Once inside code,you do not need to prefix constructs like “foreach” with “@”

这是我的观点:

@model IEnumerable<SomeModel>

<div>
@using(Html.BeginForm("Update","UserManagement",FormMethod.Post)) {

    @Html.Hidden("UserId",ViewBag.UserId)

@foreach(var link in Model) {
    if(link.Linked) {
         <input type="checkBox" name="userLinks" value="@link.Id" checked="checked" />@link.Description<br />
    } else {
         <input type="checkBox" name="userLinks" value="@link.Id" />@link.Description<br />         
    }
}

}
</div>

解决方法

在你的使用块,Razor期待C#源,而不是HTML。

因此,你应该写一个没有@的foreach。

在HTML标记中,Razor需要标记,因此您可以使用@。

例如:

<div>
    <!-- Markup goes here -->
    @if (x) {
        //Code goes here
        if (y) {
            //More code goes here
            <div>
                <!-- Markup goes here -->
                @if (z) { }
            </div>
        }
    }
</div>

你只需要一个@,如果你想把代码放在它期望的标记,或者如果你想在任何地方写输出

要将非标记标记放置在期望代码的位置,请使用@:或< text&gt ;.

原文链接:https://www.f2er.com/aspnet/254096.html

猜你在找的asp.Net相关文章