Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 具有MvcMailer的强类型模型_Asp.net_Asp.net Mvc 3_Mvcmailer - Fatal编程技术网

Asp.net 具有MvcMailer的强类型模型

Asp.net 具有MvcMailer的强类型模型,asp.net,asp.net-mvc-3,mvcmailer,Asp.net,Asp.net Mvc 3,Mvcmailer,我在将强类型模型传递给MvcMailer视图时遇到了麻烦。我使用asp.net mvc3,并使用nuget安装了MvcMailer3 没有错误消息,消息已成功发送,但未填充数据字段。我正在做的一切也尝试使用ViewBag字段,但同样的问题-消息发送成功,但字段未填充 请帮忙…我被困了两天 这是我的控制器和视图代码 //控制器代码 public ActionResult Index() { string invoicenumber = "BC-00000002";

我在将强类型模型传递给MvcMailer视图时遇到了麻烦。我使用asp.net mvc3,并使用nuget安装了MvcMailer3

没有错误消息,消息已成功发送,但未填充数据字段。我正在做的一切也尝试使用ViewBag字段,但同样的问题-消息发送成功,但字段未填充

请帮忙…我被困了两天

这是我的控制器和视图代码

//控制器代码

public ActionResult Index()
    {

        string invoicenumber = "BC-00000002";
        IEnumerable<Quantum.Models.usp_MasterPrintInvoice_Result> mpi = db.usp_MasterPrintInvoice(invoicenumber);

        IEnumerable<PrintDetailObject> printdetailobj = from anmpi in mpi select new PrintDetailObject { Head = anmpi.Head, ContributorName = anmpi.Name, RegistrationNumber = anmpi.RegistrationNumber, InvoiceNumber = anmpi.InvoiceNumber, InvoiceDate = anmpi.Date, Amount = anmpi.Amount, PaymentMonth = anmpi.Month, ReceivedBy = anmpi.Operator };


        ViewData.Model = printdetailobj.FirstOrDefault();



        IUserMailer mailer = new UserMailer();            
        mailer.Welcome().Send();
        return View();
    }
public ActionResult Index()
        {

            string invoicenumber = "BC-00000002";
            IEnumerable<Quantum.Models.usp_MasterPrintInvoice_Result> mpi = db.usp_MasterPrintInvoice(invoicenumber);

            IEnumerable<PrintDetailObject> printdetailobj = from anmpi in mpi select new PrintDetailObject { Head = anmpi.Head, ContributorName = anmpi.Name, RegistrationNumber = anmpi.RegistrationNumber, InvoiceNumber = anmpi.InvoiceNumber, InvoiceDate = anmpi.Date, Amount = anmpi.Amount, PaymentMonth = anmpi.Month, ReceivedBy = anmpi.Operator };



            IUserMailer mailer = new UserMailer();
            mailer.Welcome(printdetailobj.FirstOrDefault()).Send();
            return View();
        }

嗨,我刚刚有了回答我自己问题的洞察力

实际上,当我在“SendEmail”控制器中使用ViewData.Model时,该模型可用于其自己的视图,即“Index”视图,而不是与“UserMailer”控制器一起使用的razor视图,在我的示例中,该控制器名为“Welcome”

要将模型传递给“UserMailer”操作,我们需要进行以下修改:

//IUserMailer代码

    ...
    public interface IUserMailer
            {
                MvcMailMessage Welcome(PrintDetailObject myModel);
            }
    public virtual MvcMailMessage Welcome(PrintDetailObject myModel)
            {
                //ViewBag.Data = someObject;
                ViewData.Model = myModel;

                return Populate(x =>
                {
                    x.Subject = "Welcome";
                    x.ViewName = "Welcome";

                    x.To.Add("cmmwahid@hotmail.com");

                });
            }
//用户邮箱代码

    ...
    public interface IUserMailer
            {
                MvcMailMessage Welcome(PrintDetailObject myModel);
            }
    public virtual MvcMailMessage Welcome(PrintDetailObject myModel)
            {
                //ViewBag.Data = someObject;
                ViewData.Model = myModel;

                return Populate(x =>
                {
                    x.Subject = "Welcome";
                    x.ViewName = "Welcome";

                    x.To.Add("cmmwahid@hotmail.com");

                });
            }
//最后是控制器代码

public ActionResult Index()
    {

        string invoicenumber = "BC-00000002";
        IEnumerable<Quantum.Models.usp_MasterPrintInvoice_Result> mpi = db.usp_MasterPrintInvoice(invoicenumber);

        IEnumerable<PrintDetailObject> printdetailobj = from anmpi in mpi select new PrintDetailObject { Head = anmpi.Head, ContributorName = anmpi.Name, RegistrationNumber = anmpi.RegistrationNumber, InvoiceNumber = anmpi.InvoiceNumber, InvoiceDate = anmpi.Date, Amount = anmpi.Amount, PaymentMonth = anmpi.Month, ReceivedBy = anmpi.Operator };


        ViewData.Model = printdetailobj.FirstOrDefault();



        IUserMailer mailer = new UserMailer();            
        mailer.Welcome().Send();
        return View();
    }
public ActionResult Index()
        {

            string invoicenumber = "BC-00000002";
            IEnumerable<Quantum.Models.usp_MasterPrintInvoice_Result> mpi = db.usp_MasterPrintInvoice(invoicenumber);

            IEnumerable<PrintDetailObject> printdetailobj = from anmpi in mpi select new PrintDetailObject { Head = anmpi.Head, ContributorName = anmpi.Name, RegistrationNumber = anmpi.RegistrationNumber, InvoiceNumber = anmpi.InvoiceNumber, InvoiceDate = anmpi.Date, Amount = anmpi.Amount, PaymentMonth = anmpi.Month, ReceivedBy = anmpi.Operator };



            IUserMailer mailer = new UserMailer();
            mailer.Welcome(printdetailobj.FirstOrDefault()).Send();
            return View();
        }