Asp.net mvc MailDefinition/MailMessage和basepath不能为空
我正在用下面的代码创建一个Asp.net mvc MailDefinition/MailMessage和basepath不能为空,asp.net-mvc,mailmessage,Asp.net Mvc,Mailmessage,我正在用下面的代码创建一个MailMessage,调用mail.CreateMailMessage时收到此错误 // Create a dummy page and use it to load a dummy control so that CreateMailMessage() will not complain Page page = new Page(); DummyControl control = (DummyControl)page.LoadControl("~/DummyCont
MailMessage
,调用mail.CreateMailMessage
时收到此错误
// Create a dummy page and use it to load a dummy control so that CreateMailMessage() will not complain
Page page = new Page();
DummyControl control = (DummyControl)page.LoadControl("~/DummyControl.ascx");
MailMessage message = mail.CreateMailMessage(reciever, RecieptReplacements, dummycontrol);
值不能为null。参数名称:basepath
有人知道会出什么问题吗
public void SendReciept(string reciever)
{
MailDefinition mail = new MailDefinition();
mail.IsBodyHtml = true;
mail.BodyFileName = "~/file.txt";
mail.Subject = "Subject";
mail.From = "noreply@xxx.com";
mail.Priority = System.Net.Mail.MailPriority.Normal;
MailMessage message = mail.CreateMailMessage(reciever, RecieptReplacements, new System.Web.UI.Control());
...
}
ListDictionary RecieptReplacements
{
get
{
ListDictionary replacements = new ListDictionary();
replacements.Add("<%Name%>", "Name");
return replacements;
}
}
public void sendReceipt(字符串接收器)
{
MailDefinition mail=新邮件定义();
mail.IsBodyHtml=true;
mail.BodyFileName=“~/file.txt”;
mail.Subject=“Subject”;
mail.From=”noreply@xxx.com";
mail.Priority=System.Net.mail.MailPriority.Normal;
MailMessage=mail.CreateMailMessage(receiver,receiptreplacements,new System.Web.UI.Control());
...
}
ListDictionary接收替换
{
得到
{
ListDictionary replacements=新建ListDictionary();
替换。添加(“,”名称“);
归还替代品;
}
}
您需要创建一个Web用户控件(.ascx文件),然后加载该控件并将其传递给CreateMailMessage
// Create a dummy page and use it to load a dummy control so that CreateMailMessage() will not complain
Page page = new Page();
DummyControl control = (DummyControl)page.LoadControl("~/DummyControl.ascx");
MailMessage message = mail.CreateMailMessage(reciever, RecieptReplacements, dummycontrol);
看看这个,它解释了为什么,并提供了上述解决方案