【问题标题】:Issue while sending email in MVC 4.0在 MVC 4.0 中发送电子邮件时出现问题
【发布时间】:2013-12-29 19:27:43
【问题描述】:

我在 MVC 4.0 中创建了一个示例空网站

我在共享文件夹中创建了一个电子邮件文件夹,然后我添加了 ew 电子邮件模板(email.html.cshtml)

我使用了 MailerBase。

当我尝试发送电子邮件时,出现运行时错误

“~/Views/Shared/Email/HomeEmail.html.cshtml”处的视图必须派生自 WebViewPage 或 WebViewPage。

要解决这个问题:我在电子邮件模板顶部添加了以下代码

@inherits System.Web.Mvc.WebViewPage

同样的问题又来了

【问题讨论】:

  • 您的意思是“MailerBase”吗,如 ActionMailer.net 中的?
  • 将视图重命名为 EmailSender 或其他名称,独一无二。您可能在上下文中遇到了另一个具有相同名称的类,编译器会感到困惑。我会将其发布为答案,但有可能这不是真正的问题(但是,很可能是)。
  • 重命名后无效。
  • 清理一下项目怎么样?
  • 我已完成清洁并重新启动机器。还是一样

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


【解决方案1】:

当我创建一个 Internet 应用程序时,它就开始工作了。当我创建空应用程序时。这没用。这是最新发现。

每当有人分享此问题的根本原因时,我都会删除此答案

谢谢

【讨论】:

  • 您是否对空应用程序和 Internet 应用程序之间的 View web.config 和主应用程序 web.config 进行了并排比较?
【解决方案2】:

当您创建空应用程序时, 可能是您忘记在视图文件夹中添加 web.config 文件

<?xml version="1.0"?>

 <configuration>
 <configSections>
 <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
   <section name="pages"  type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>

<system.web.webPages.razor>
 <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
 <pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing" />
    <add namespace="...YourAppNameSpace..." />
   </namespaces>
 </pages>
 </system.web.webPages.razor>

 <appSettings>
  <add key="webpages:Enabled" value="false" />
 </appSettings>

 <system.webServer>
  <handlers>
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  </handlers>
</system.webServer>
</configuration>

【讨论】:

  • 不。这不是原因。我在 Empty App 的时候得到了现成的配置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 2011-07-30
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多