加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:53:47 所属栏目:asp.Net 来源:网络整理
导读:我有一个局部视图在剃刀。当我运行它,我得到以下错误 – 似乎像Razor陷入思考我在写代码无处不在。 Unexpected “foreach” keyword after “@” character. Once inside code,you do not need to prefix constructs like “foreach” with “@” 这是我的
我有一个局部视图在剃刀。当我运行它,我得到以下错误 – 似乎像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 ;.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读