我正在使用ASP.NET MVC 5和Visual Studio Express 2013.我在C#项目中使用了这个小表单:
<body>
@using (Html.BeginForm())
{
<p>Your name: @Html.TextBoxFor(x => x.Name) </p>
<p>Your email: @Html.TextBoxFor(x => x.Email) </p>
<p>Your phone: @Html.TextBoxFor(x => x.Phone) </p>
}
</body>
我尝试将上面的代码翻译成VB.NET,如下所示:
<body>
@Using Html.BeginForm()
<p>Your name: @Html.TextBoxFor(Function(m), m.Name)</p>
<p>Your email: @Html.TextBoxFor(Function(m), m.Email)</p>
<p>Your phone: @Html.TextBoxFor(Function(m), m.phone)</p>
End Using
</body>
我在每个“P”元素的“你的”下面都有蓝线。当我将鼠标悬停在蓝线上时的提示帮助是'属性说明符不是一个完整的语句。使用行继续将属性应用于以下语句。'。
当我调试页面时,错误是'BC30201:表达式预期'。在@Using发生的那一行。
我做错了什么?
答案 0 :(得分:7)
正如@rogerdeuce推测的那样,您不需要第二个@
符号。
@
用于将上下文从VB代码切换为HTML /文本。
所以正确的代码如下:
<body>
@Using Html.BeginForm()
@<p>Your name: @Html.TextBoxFor(Function(m) m.Name)</p>
@<p>Your email: @Html.TextBoxFor(Function(m) m.Email)</p>
@<p>Your phone: @Html.TextBoxFor(Function(m) m.phone)</p>
End Using
</body>
或者您可以使用@<text>
快捷方式:
<body>
@Using Html.BeginForm()
@<text>
<p>Your name: @Html.TextBoxFor(Function(m) m.Name)</p>
<p>Your email: @Html.TextBoxFor(Function(m) m.Email)</p>
<p>Your phone: @Html.TextBoxFor(Function(m) m.phone)</p>
</text>
End Using
</body>