0

我正在尝试将 C# Razor 转换为 VB Razor 遇到以下问题

当我改变

(Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl }))
@Html.LabelFor(m => m.UserName)
@Html.LabelFor(m => m.RememberMe, new { @class = "checkbox" }) 

(Html.BeginForm(new With { .ReturnUrl = ViewBag.ReturnUrl }))
@Html.LabelFor(m => m.UserName)
@Html.LabelFor(m => m.RememberMe, new With { .class = "checkbox" })

我得到错误

“我没有声明它可能由于其保护级别而无法访问”

还请解释一下这个新的 C# 语法

Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })

及其在 VB 中的等价物

4

2 回答 2

2
@Html.LabelFor(m => m.UserName)

应该

@Html.LabelFor(Function(m) m.UserName)

请参阅:如何:创建 Lambda 表达式 (Visual Basic)


@Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })

分别

@Html.BeginForm(new With { .ReturnUrl = ViewBag.ReturnUrl }

创建一个匿名类型。请参阅:匿名类型 (Visual Basic)

于 2013-09-19T11:22:49.063 回答
0

也许这

@Html.BeginForm(New With { _
    Key .ReturnUrl = ViewBag.ReturnUrl _
})
@Html.LabelFor(Function(m) m.UserName)
@Html.LabelFor(Function(m) m.RememberMe, New With { _
    Key .[class] = "checkbox" _
})

如果您指的是new { ReturnUrl = ViewBag.ReturnUrl }它只是一种匿名类型。

于 2013-09-19T11:23:34.010 回答