Model view controller MVC net core 1.1.0 Mailkit发送返回空白页的邮件表单
此代码有什么问题-我只想在成功发送后重定向: 公共异步任务SendEmailAsync(字符串电子邮件、字符串名称、字符串消息) { var emailMessage=new mimessage()Model view controller MVC net core 1.1.0 Mailkit发送返回空白页的邮件表单,model-view-controller,mailkit,Model View Controller,Mailkit,此代码有什么问题-我只想在成功发送后重定向: 公共异步任务SendEmailAsync(字符串电子邮件、字符串名称、字符串消息) { var emailMessage=new mimessage() 我不知道你为什么要在那里使用RedirectToAction。我不认为它可以在不是actionresult的方法中使用。该方法的目的是调用另一个actionmethod,然后在其中运行代码。但是你没有,所以你可以直接从你使用的任何actionmethod调用View(“谢谢”) 您应该为电子邮件方法
我不知道你为什么要在那里使用RedirectToAction。我不认为它可以在不是actionresult的方法中使用。该方法的目的是调用另一个actionmethod,然后在其中运行代码。但是你没有,所以你可以直接从你使用的任何actionmethod调用View(“谢谢”) 您应该为电子邮件方法创建一个单独的类,然后从控制器调用该类 这样,您只需在触发电子邮件的actionmethod中的一行中调用电子邮件方法。这将节省大量工作。此示例调用电子邮件类EmailService及其sendmail方法:
Public async Task<IActionResult> Mail()
{
//maybe some validation or/and exeption handling
var emailService = new EmailService();
await emailService.SendEmailAsync();
return View("Thanks");
//errormessage if not succeed
}
public IActionResult Thanks()
{
return View();
}
公共异步任务邮件()
{
//可能需要一些验证或/和验证处理
var emailService=new emailService();
等待emailService.SendEmailAsync();
返回视图(“谢谢”);
//如果未成功,则返回错误消息
}
公众谘询结果谢谢()
{
返回视图();
}
理想情况下,您希望使用依赖项注入来设置电子邮件服务。
在控制器(或其他类)中,您可以通过在构造函数中实例化来调用电子邮件类
Public async Task<IActionResult> Mail()
{
//maybe some validation or/and exeption handling
var emailService = new EmailService();
await emailService.SendEmailAsync();
return View("Thanks");
//errormessage if not succeed
}
public IActionResult Thanks()
{
return View();
}