“@”字符后出现意外的“foreach”关键字

2024-01-11

我用剃刀完成了部分视图。当我运行它时,我收到以下错误 - 似乎 Razor 一直认为我在到处编写代码。

“@”字符后出现意外的“foreach”关键字。一旦进入代码,您不需要在“foreach”之类的结构前添加“@”

这是我的观点:

@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>

在你的里面using块,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>

你只需要一个@如果您想将代码放在需要标记的位置,或者您想在任何地方写入输出。

要将非类似标记的标记放在需要代码的位置,请使用@: or <text>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“@”字符后出现意外的“foreach”关键字 的相关文章

随机推荐