2013-05-22 95 views
0

我得到這個錯誤在我CSHTML文件接近這個代碼分析器錯誤MVC3剃刀代碼

@{  
    var options = new OpenIdSelector(); 
    options.TextBox.LogOnText = "Log On"; 
} 

分析器錯誤

說明:需要對資源的解析過程中出現錯誤服務這個請求。請檢查以下特定的分析錯誤詳細信息並適當修改您的源文件。

解析器錯誤消息:「@」字符後出現意外的「{」。一旦進入代碼塊的正文(@if {},@ {}等),您就不需要使用「@ {」切換到代碼。


@using DotNetOpenAuth.Mvc 
@using DotNetOpenAuth.OpenId.RelyingParty 
@{ 
ViewBag.Title = "Log On"; 
} 
<div id="login-oauth"> 
     <h3>via 3rd Party (recommended)</h3> 

     @{ Html.RenderPartial("LogOnContent");} 


    </div> 
    <div id="or">OR</div> 
    <div id="login-account"> 
     <h3>using a account</h3> 
     </div> 
    @using (Html.BeginForm()) 
    { 
     <div> 
      <p> 
       <label for="username">Username:</label> 
       @(Html.TextBox("username")) 
       @(Html.ValidationMessage("username", "*")) 
      </p> 
      <p> 
       <label for="password">Password:</label> 
       @(Html.Password("password")) 
       @(Html.ValidationMessage("password", "*")) 
      </p> 
      <p> 
       @(Html.CheckBox("rememberMe")) <label class="inline" for="rememberMe">Remember me?</label> 
      </p> 
      <p> 
       <input class="classiclogon" type="submit" value="Log On" /> 
      </p> 
      <p> 
       Please enter your username and password. @(Html.ActionLink("Register", "Register")) if you don't have an account. 
      </p> 
     </div> 



@{  
    { 
      var options = new OpenIdSelector(); 
      options.TextBox.LogOnText = "Log On"; 
} 
     } 
     @MvcHtmlString.Create(Html.OpenIdSelectorScripts(options, null)) 
    @* @(Html.OpenIdSelectorScripts(this.Page, options, null))*@ 

    } 
+1

這聽起來像你已經在一個代碼塊而不是一個標記塊。周圍的代碼是什麼樣的?如果放棄'@ {'和'}',它會起作用嗎? – Rup

+1

請告訴我們周圍的環境。 –

回答

6

你已經在

@using (Html.BeginForm()) 
{ 

塊,所以你

var options = new OpenIdSelector(); 
options.TextBox.LogOnText = "Log On"; 

塊沒有開始與@{。幾乎錯誤說的是什麼。

您也可以將這兩行移動到頂部的代碼塊,在其中設置ViewBag.Title,以儘可能避免代碼中的HTML代碼。