asp.net错误CS0103:名称' WebMail'在当前上下文中不存在

时间:2014-06-21 21:45:17

标签: asp.net-mvc razor

我有一个简单的联系表格的应用程序。

发送电子邮件的视图:

@{
    try
    {
        WebMail.SmtpServer = "";
        WebMail.SmtpPort = 587;
        WebMail.UserName = "";
        WebMail.Password = "";
        WebMail.From = "";

        WebMail.Send("", "New contact",
            Model.Name + " <br> " + Model.Email + " <br> " + Model.Message);
    }
    catch (Exception)
    {
        @:<div class="alert alert-danger">Sorry! We couldn't send the email to confirm you RSVP.</div>
    }
}

当我填写表单并发送时,显示此错误:

Compiler Error Message: CS0103: The name 'WebMail' does not exist in the current context

如何解决此错误?

我在其他项目中使用相同的代码并且它有效。我错过了什么?

2 个答案:

答案 0 :(得分:0)

使用此

using System.Web.Helpers;

位于代码页的顶部,您正在使用其他using语句。在此之后,您的代码将在文档中包含WebMail

只有在代码directoy中包含对象和类后,才能使用它们。您可以直接参考as

System.Web.Helpers.WebMail.Send();

或者您可以使用此方法

using System.Web.Helpers;
// then in the code 
WebMail.Send();

两种方式都可以使用代码。但是,不只是通过引用。因为单个Name引用会强制编译器查找WebMail,并且项目中不会有这样的Class。

http://msdn.microsoft.com/en-us/library/system.web.helpers.webmail(v=vs.111).aspx

答案 1 :(得分:0)

Afzaal的答案很接近。但是您的代码示例和标记使您看起来像是在使用剃刀视图。要向视图添加命名空间,请使用视图顶部的@using System.Web.Helpers

或者,如果您要在多个视图上使用它,请将以下内容添加到<namespaces>标记下的Views文件夹中的web.config文件中:

<add namespace="System.Web.Helpers" />