我在此代码附近的cshtml文件中收到此错误
@{
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))*@
}
答案 0 :(得分:6)
你已经在
了@using (Html.BeginForm())
{
阻止,所以你的
var options = new OpenIdSelector();
options.TextBox.LogOnText = "Log On";
块不必以@{
开头。几乎是错误所说的。
您也可以将这两行移动到顶部的代码块,您可以在其中设置ViewBag.Title
,以尽可能地保护您的HTML免受代码攻击。