【问题标题】:using mvcmailer in mvc3在 mvc3 中使用 mvcmailer
【发布时间】:2011-10-13 12:50:07
【问题描述】:

我正在尝试在我的 mvc 网络应用程序中使用 mvcmailer。当我在一个虚拟项目中使用它并继续 wiki 中所述的步骤时,它运行良好并且我能够发送电子邮件。

但是当我尝试将它集成到我的网络应用程序中时,它在“PopulateBody(mailMessage, viewName: "Welcome"); 处给出错误说明它无法找到 _Layout.text。 _Layout.text.cshtml 和 _Layout.cshtml 与 Welcome.cshtml 一起存在于 Usermailer 文件夹中。

用户邮件代码

public class UserMailer : MailerBase, IUserMailer     
    {
        public UserMailer():
            base()
        {
            MasterName="_Layout";
        }
public virtual MailMessage Welcome(string email, string validationUrl)
        {
            var mailMessage = new MailMessage{Subject = "Welcome to GiftSocial"};

            mailMessage.To.Add(email);
            ViewBag.Validationkey = validationUrl;
            PopulateBody(mailMessage, viewName: "Welcome");

            return mailMessage;
        } 
}

控制器代码

UserMailer.Welcome(email: model.Email, validationUrl: validationUrl).Send();

复制的异常详情:

System.Web.HttpException was unhandled by user code
  Message=The layout page "_Layout.text" could not be found at the following path: "~/Views/UserMailer/_Layout.text".
  Source=Mvc.Mailer
  ErrorCode=-2147467259
  WebEventCode=0
  StackTrace:
       at Mvc.Mailer.StringResult.ExecuteResult(ControllerContext context, String mailerName)
       at Mvc.Mailer.MailerBase.EmailBody(String viewName, String masterName)
       at Mvc.Mailer.MailerBase.PopulateTextBody(MailMessage mailMessage, String viewName, String masterName)
       at Mvc.Mailer.MailerBase.PopulateBody(MailMessage mailMessage, String viewName, String masterName, Dictionary`2 linkedResources)
       at MvcGiftSocial.Mailers.UserMailer.Welcome(String email, String validationUrl) 
       at MvcGiftSocial.Controllers.AccountController.Register(RegisterViewModel viewmodel, String returnUrl) in C:\Users\ASUS\Documents\Visual Studio 2010\Projects\GiftSocialAzureNew\MvcGiftSocial\Controllers\AccountController.cs:line 86
       at lambda_method(Closure , ControllerBase , Object[] )
       at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
       at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
  InnerException: 

如果有人能告诉我我做错了什么,我将不胜感激..

谢谢 阿纳布

【问题讨论】:

  • 能否请您发布您的共享布局以及您的视图和视图模型
  • 我用的是mvcmailer自带的_Layout和Welcome.cshtml,我还没改什么

标签: asp.net-mvc-3 mvcmailer


【解决方案1】:

这个错误几乎是不言自明的。未找到所需的视图。 您似乎正在尝试发送文本/纯邮件消息。因此 MvcMailer 正在寻找这样的观点。

见:https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide#wiki-send-multi-part-emails

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多