如果我运行我的代码,我会看到错误:
“@”字符后出现意外的“使用”关键字。一旦进入代码内部,您就不需要像“使用”这样的结构加上“@”前缀。
这是我的代码:
@model IEnumerable<Quests.Models.Entities.Diagram>
@if(Model.Select(x => x.Rank).Where(x => x == "Podstawowy").Count() > 0)
{
Html.Partial("DiagramsTable", Model.Where(x => x.Rank == "Podstawowy"));
}
错误显示,Html.Partial
生成错误。
我尝试了很多解决方案而且找不到。
从控制器我发送模型IEnumerable<Diagram>
。
我在代码中看不到任何“using”关键字,它有4行。那就完了。
我的DiagramTable.cshtml:
@model IEnumerable<Quests.Models.Entities.Diagram>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">@Model.FirstOrDefault().Rank</h3>
</div>
<div class="panel-body">
<table class="table text-center">
<thead>
<tr>
<td>Element</td>
<td>Poziom</td>
</tr>
</thead>
<tbody>
@foreach (var diagram in Model)
{
<tr class="@diagram.DiagramColorInfo()">
<td>@diagram.Element</td>
<td>@diagram.Level.ToString()</td>
<td>
@if (diagram.Have == false)
{
@using (Html.BeginForm("SetHave", "Diagram", FormMethod.Post, new { onsubmit = "return confirm('Ustawić posiadanie schematu?');" }))
{
@Html.Hidden("DiagramID", diagram.DiagramID)
<input type="submit" class="btn btn-warning" value="Zdobyto" />
}
}
else if ((diagram.Crafted == false) && (diagram.Have == true))
{
@using (Html.BeginForm("SetCrafted", "Diagram", FormMethod.Post, new { onsubmit = "return confirm('Ustawić posiadanie schematu?');" }))
{
@Html.Hidden("DiagramID", diagram.DiagramID)
<input type="submit" class="btn btn-success" value="Stworzono" />
}
}
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
答案 0 :(得分:1)
从以下代码行中删除@
字符:
@using (Html.BeginForm("SetHave", "Diagram", FormMethod.Post, new { onsubmit = "return confirm('Ustawić posiadanie schematu?');" }))
@using (Html.BeginForm("SetCrafted", "Diagram", FormMethod.Post, new { onsubmit = "return confirm('Ustawić posiadanie schematu?');" }))
当您在Visual Studio中出现此错误时,您只需双击它,它将转到包含不需要的@
字符的代码行:< / p>
答案 1 :(得分:1)
在大多数Razor表示法操作符上,您不需要使用另一个&#34; @&#34;在同一范围内。
@if(something)
{
@Html.Hidden("InputID", model.Field) // this will show an error, due the previous "@" of "@if"
}
你可以通过删除以下&#34; @&#34;来解决这个问题。范围内的运算符:
@if(something)
{
Html.Hidden("InputID", model.Field)
}
修改1
但是,如果您之前的&#34; @operator {&#34;你应该在下面的指令中再次使用@。
@if(something)
{
<div>
@Html.Hidden("InputID", model.Field)
//now you need to use the @ again due the <div> tag
</div>
}