.net - ASP.NET MVC-应该如何处理发送电子邮件?

标签 .net asp.net asp.net-mvc email

在ASP.NET MVC应用程序中,应如何处理电子邮件的发送?我一直在考虑这个问题,我真的很喜欢以面向MVC的方式处理它的想法(毕竟它是MVC应用程序。)

我的意思是,传递给用户的电子邮件实际上只是一个 View ,应该将模型传递给它。这就引起了一些问题:执行 Action 时,我们如何将 View 同时传递到请求的浏览器和SMTP服务器?框架是否有任何设施来支持这一点?如果不是,是否存在某些第三方发布/此类功能的指南?

以MVC方式处理电子邮件发送的替代方法是:

  • 电子邮件发送代码显示在 Controller 的操作方法中。
  • 电子邮件发送是Model对象的行为。

  • 您如何在ASP.NET MVC应用程序中处理电子邮件的发送?您如何看待面向MVC的方法?

    最佳答案

    通常,当您需要新的结果类型时,您可以编写一个新的MyResult对象,该对象将从ActionResult继承。这样,您的操作方法将可以自由选择所指示的结果类型,并且View Engine可以简单地对新结果类型调用ExecuteResult()方法,该方法将保留有关如何呈现数据的逻辑。

    但是,由于您的操作听起来像只是想从View中获取HTML并将其通过电子邮件发送(与Web浏览器的结果类型相同),因此the answers to this question应该对其进行深入介绍。请注意,使用MVC 2.0代码的答案是最好的方法,因为由于普遍的需求,他们在第二个版本中添加了“向字符串渲染 View ”功能。

    您的问题是一个好问题,因为我强烈建议您对程序的任何输出采用MVC方法。从电子邮件发送 View 在概念上与将 View 发送到任何其他输出类型(PDF,移动浏览器,SMS)没有什么不同,并且通过构建可插拔的 View 输出,您将有一种简单的方法来支持扩展应用程序的使用。

    关于.net - ASP.NET MVC-应该如何处理发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231798/

    相关文章:

    c# - 如何使用 ASP.NET MVC 更改 ModelState 中的值,使其有效?

    c# - 按钮 Onclick 事件(在 codbehind 中)不会在 MVC 2 中触发

    c# - 开源即时通讯工具?

    c# - 如何使用 Razor 通过循环正确生成 Bootstrap 网格?

    jquery - ajax 调用 Controller 时出现错误 500 - MVC Razor

    c# - 从字节数组读取 C# 中的 C/C++ 数据结构

    c# - 一次显示 DataAnnotation 和 IValidatableObject 的所有验证错误

    .net - .Net Core项目中Nuget和SDK依赖项之间的区别

    c# - Telegram C# 示例发送消息

    asp.net - 显示特定IP地址的死亡蓝屏(YSOD)