使用ASP.Net-mvc 4从C#转换为VB

时间:2013-09-19 11:17:00

标签: c# asp.net-mvc vb.net razor

我正在尝试将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中的等价物

2 个答案:

答案 0 :(得分:2)

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

应该是

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

请参阅:How to: Create a Lambda Expression (Visual Basic)


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

分别

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

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

答案 1 :(得分: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 },则只需anonyimous类型。