将ActionMailer.Mvc从C#转换为VB

时间:2012-08-20 11:59:17

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

原始文档存在here

我已经转换了控制器动作:

Imports ActionMailer.Net.Mvc

    Public Class EmailController
        Inherits MailerBase

        Public Function VerificationEmail(ByVal model As RegisterModel) As EmailResult

            [To].Add(model.Email)
            From = "me@my.org"
            Subject = "Thanks for registering with us!"
            Return Email("VerificationModel", model)

        End Function

    End Class

而且,视图(EmailVerification.html.vbhtml):

@modelType GemcoBlog.RegisterModel

@Code
    Layout = Nothing
End code

Welcome to My Cool Site, @Model.UserName

We need you to verify your email.  Click this nifty link to get verified!

@Html.ActionLink("Verify", "Account", New With {.code = Model.Email})

Thanks!

但是,如何转换此C#代码以将我的Register方法中的函数调用到VB?

new MailController().VerificationEmail(newUser).Deliver();

我还没有在互联网上找到任何描述如何在VB中执行此操作的内容,所以这篇文章可能对那些看起来很有帮助。

作为旁注:有人可以向我解释这种语法[To].Add(model.Email)吗?我之前没见过。感谢。

1 个答案:

答案 0 :(得分:2)

Dim controller = New MailController()
Dim email = controller.VerificationEmail(newUser)
email.Deliver()

或者如果您更喜欢一个衬垫:

Call New MailController().VerificationEmail(newUser).Deliver()
  

作为旁注:有人可以向我解释这种语法   [到]。新增(model.Email)?我之前没见过。感谢。

To是VB中的保留字。将其包装在方括号中可确保您不会与此保留关键字发生冲突。

C#中的等价物是@关键字:

int @int = 123;