意外"的foreach"关键字后" @"字符 [英] Unexpected "foreach" keyword after "@" character
问题描述
我在做剃刀的局部视图。当我运行它,我得到以下错误 - 它看起来像剃刀卡住思成我到处写code
。
在@字符意外的foreach关键字。一旦进入code,你不需要preFIX构造像的foreach和@
块引用>下面是我的看法:
@model IEnumerable的< SomeModel>< DIV>
@using(Html.BeginForm(更新,UserManagement,FormMethod.Post)){ @ Html.Hidden(用户ID,ViewBag.UserId)@foreach(以型号VAR链接){
如果(link.Linked){
&LT;输入类型=复选框NAME =userLinksVALUE =@ link.Id检查=选中/>@link.Description<br /&GT;
}其他{
&LT;输入类型=复选框NAME =userLinksVALUE =@ link.Id/>@link.Description<br /&GT;
}
}}
&LT; / DIV&GT;
解决方案在你的
使用
块,剃须刀期待C#源代码,而不是HTML。因此,你应该写
的foreach
没有@
。HTML标记内,剃刀预计的标记,所以你可以使用
@
。例如:
&LT; DIV&GT;
&LT;! - 标记放在这里 - &GT;
@if(X){
// code到这里
如果(y)的{
//更多code到这里
&LT; DIV&GT;
&LT;! - 标记放在这里 - &GT;
@if(z)的{}
&LT; / DIV&GT;
}
}
&LT; / DIV&GT;您只需要一个
@
如果你想要把code其中它的预期的标记,或者如果你想在任何地方写的输出。要放在非标签状标记,其中该公司预计,code,使用
@
或&LT;文本&GT;
。I have a partial view done in razor. When I run it I get the following error - it seems like Razor gets stuck into thinking I'm writing code everywhere.
Unexpected "foreach" keyword after "@" character. Once inside code, you do not need to prefix constructs like "foreach" with "@"
Here is my view:
@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>
解决方案Inside your
using
block, Razor is expecting C# source, not HTML.Therefore, you should write
foreach
without an@
.Inside an HTML tag, Razor expects markup, so you would use
@
.For example:
<div> <!-- Markup goes here --> @if (x) { //Code goes here if (y) { //More code goes here <div> <!-- Markup goes here --> @if (z) { } </div> } } </div>
You only need an
@
if you want to put code where it's expecting markup, or if you want to write output anywhere.To put non-tag-like markup where it's expecting code, use
@:
or<text>
.这篇关于意外&QUOT;的foreach&QUOT;关键字后&QUOT; @&QUOT;字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!