【问题标题】:@Html.BeginForm syntax in Visual BasicVisual Basic 中的@Html.BeginForm 语法
【发布时间】:2016-01-14 22:06:06
【问题描述】:

我正在使用 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 出现的那一行。

我做错了什么?

【问题讨论】:

  • P.S. C# 代码按预期工作。
  • @Using 后跟 @Html.BeginForm() 是错字吗?你可能不需要在那一行有两个 @
  • 这并不是一个错字。我尝试在不同的地方插入额外的@,看看我是否能得到正确的语法。当我写这篇文章时,我忘了删除那个。我确认它不在我的 VB 代码中,重新运行页面,但我仍然遇到问题。错误消息从带有@Using 的行转移到以下行(第一个文本框),消息是:BC32035:属性说明符不是完整的语句。使用续行将属性应用于以下语句。

标签: asp.net asp.net-mvc vb.net


【解决方案1】:

正如@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>

或者您可以使用@&lt;text&gt; 快​​捷方式:

<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>

【讨论】:

  • 请注意,我将您的表达式变量从 model 重命名为 m 以避免与内置 Model 变量的命名冲突。
  • 谢谢。我尝试了上面的两个示例。当我将页面中的代码更改为其中之一时,在 lambda 表达式中的逗号下方和 m.Name 中的“m”下方有一条蓝线。逗号下方的蓝线悬停为“预期表达式”,“m”下方的蓝线悬停为“'m'未声明。由于其保护级别,它可能无法访问。”当我调试页面时,它会中止并显示“BC30201:预期表达式”消息。
  • 哎呀。更正了。 lambda 表达式中没有逗号。
  • 噢!你是对的!那解决了它!谢谢你,@Sam Axe。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多