Web applications razor语法问题-此中缺少的}在哪里?(我正在使用knockoutjs,但我认为这与此无关,忽略这一部分)

Web applications razor语法问题-此中缺少的}在哪里?(我正在使用knockoutjs,但我认为这与此无关,忽略这一部分),web-applications,razor,knockout.js,Web Applications,Razor,Knockout.js,这是我第一次使用razor viewengine,有人能帮我吗?我得到以下错误: 分析器错误 描述:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息,并适当修改源文件 分析器错误消息:foreach块缺少结束“}”字符。确保此块中的所有“{”字符都有一个匹配的“}”字符,并且“}”字符都没有被解释为标记 源错误: Line 12: <tr> Line 13: Line 14: @foreach(string fieldName in Model.FieldNames

这是我第一次使用razor viewengine,有人能帮我吗?我得到以下错误: 分析器错误

描述:解析服务此请求所需的资源时出错。请查看以下特定的解析错误详细信息,并适当修改源文件

分析器错误消息:foreach块缺少结束“}”字符。确保此块中的所有“{”字符都有一个匹配的“}”字符,并且“}”字符都没有被解释为标记

源错误:

Line 12: <tr>
Line 13: 
Line 14: @foreach(string fieldName in Model.FieldNames) {
Line 15:         if(Model.FieldTypes[fieldName]=="label") {
Line 16:       @:  <td class="label" data-bind="text: @fieldName"></td>
第12行:
第13行:
第14行:@foreach(Model.FieldNames中的字符串fieldName){
第15行:if(Model.FieldTypes[fieldName]=“label”){
第16行:@:
我的代码是:

@foreach(string fieldName in Model.FieldNames) {
        if(Model.FieldTypes[fieldName]=="label") {
      @:  <td class="label" data-bind="text: @fieldName"></td>
        }
        else if(Model.FieldTypes[fieldName]=="text") {
      @:   <td class="text"><input type="text" data-bind="value: @fieldName, event: {focus: highlightField, blur: updateUser}"/></td>
        }
        else if(Model.FieldTypes[fieldName]=="number") {
     @:   <td class="number"><input type="text" data-bind="value: @fieldName, event: {focus: highlightField, blur: updateUser}"/></td>
        }
      else if(Model.FieldTypes[fieldName].Contains("dropdown") {
     @:   <td class="text"><select id='groupSelect' data-bind="options: @Model.FieldTypes[fieldName].Replace("dropdown", ""), optionsText: 'Name', selectedOptions: selectedUserGroupValue, event: {focus: highlightField, blur: updateUser}"></select>
        } 
     }
@foreach(Model.FieldNames中的字符串fieldName){
if(Model.FieldTypes[fieldName]=“label”){
@:  
}
else if(Model.FieldTypes[fieldName]=“text”){
@:   
}
else if(Model.FieldTypes[fieldName]=“number”){
@:   
}
else if(Model.FieldTypes[fieldName].Contains(“下拉列表”){
@:   
} 
}
有趣的是,如果我将最后一部分注释掉,它将非常有效:

@*
 else if(Model.FieldTypes[fieldName].Contains("dropdown") {
     @:   <td class="text"><select id='groupSelect' data-bind="options: @Model.FieldTypes[fieldName].Replace("dropdown", ""), optionsText: 'Name', selectedOptions: selectedUserGroupValue, event: {focus: highlightField, blur: updateUser}"></select>
        } 
*@
@*
else if(Model.FieldTypes[fieldName].Contains(“下拉列表”){
@:   
} 
*@
有人知道为什么添加此部分会导致此错误吗

非常感谢。

这个怎么样

@foreach (string fieldName in Model.FieldNames)
{
    if (Model.FieldTypes[fieldName] == "label")
    {
    }
    else if (Model.FieldTypes[fieldName] == "text")
    {
    }
    else if (Model.FieldTypes[fieldName] == "number")
    {
    }
    else if (Model.FieldTypes[fieldName].Contains("dropdown"))
    {
    }
}
这个怎么样

@foreach (string fieldName in Model.FieldNames)
{
    if (Model.FieldTypes[fieldName] == "label")
    {
    }
    else if (Model.FieldTypes[fieldName] == "text")
    {
    }
    else if (Model.FieldTypes[fieldName] == "number")
    {
    }
    else if (Model.FieldTypes[fieldName].Contains("dropdown"))
    {
    }
}

最后一个if条件缺少a”)“

最后一个if条件缺少a”)”.

如果你能把代码放在代码语法中,那将是非常值得的。请注意,你不需要
@:
放在
If
主体中。你说代码语法中的代码是什么意思?当我在每个If和elseif下面的行中取出@:时,如果它再次出现错误……你知道razor语法的好参考是什么吗?我用谷歌搜索了它如果你能把代码放在代码语法中,那将是非常感激的。注意,你不需要在
If
body里面放
@:
,你说的代码语法中的代码是什么意思?当我取出每个If和elseif下面的行中的@:如果它再次出现错误,你知道吗关于剃须刀语法的d参考是什么?我在谷歌上搜索了一下,得到了一个页面,上面只包含了一些基本的例子。谢谢,哇,我真不敢相信我错过了!谢谢,哇,我真不敢相信我错过了!