c# - 将模型从一个 Action 传递到同一 Controller 中的另一个 Action

标签 c# asp.net-mvc-3 model-view-controller asp.net-4.0 asp.net-mvc-3-areas

我试图将我的模型 List< Models.Statement > statementList 从一个 Action 传递到另一个 Action ,但我在第二个 Controller 中收到空值。请建议这里有什么问题。甚至尝试过:

return RedirectToAction("WriteInTemplate", new { statementList = statementList });

请帮忙。

    public ActionResult SendPdfStatement(string InvoiceNumber)
    {
        try
        {
            InvoiceNumber = InvoiceNumber.Trim();

            ObjectParameter[] parameters = new ObjectParameter[1];
            parameters[0] = new ObjectParameter("InvoiceNumber", InvoiceNumber);

            List<Models.Statement> statementList = new List<Models.Statement>();
            statementList = _db.ExecuteFunction<Models.Statement>("uspInvoiceStatement", parameters).ToList<Models.Statement>();

            //WriteInTemplate(statementList);
            return RedirectToAction("WriteInTemplate", statementList );

        }
        catch (Exception e)
        {
            InvoiceSearchTool.Models.udtExceptionTable exception = new udtExceptionTable();
            exception.MethodName = "SendPdfStatement";
            exception.Exception = e.ToString();
            exception.Date = DateTime.Now;
            DYNAMICS_EXTEntities db = new DYNAMICS_EXTEntities();
            db.AddToudtExceptionTables(exception);
            db.SaveChanges();  
            return View("Error");
        }
    }

    public ActionResult WriteInTemplate(List<Models.Statement> statementList)
    {
        try
        {
            string invoiceNumber = statementList.FirstOrDefault().Invoice.ToString().Trim();
        ...................snip..........


            return RedirectToAction("CreateMessageWithAttachment", "email", invoiceNumber); 
        }
        catch (Exception e)
        {
            InvoiceSearchTool.Models.udtExceptionTable exception = new udtExceptionTable();
            exception.MethodName = "WriteInTemplate";
            exception.Exception = e.ToString();
            exception.Date = DateTime.Now;
            DYNAMICS_EXTEntities db = new DYNAMICS_EXTEntities();
            db.AddToudtExceptionTables(exception);
            db.SaveChanges();

            return View("Error");
        }

    }

最佳答案

请看here to pass your Model

您没有传递“statementList”,而是传递了 new {statementList= statementList},只需传递模型就可以了。

return RedirectToAction("WriteInTemplate", statementList);

sino 的回答

关于c# - 将模型从一个 Action 传递到同一 Controller 中的另一个 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9024693/

相关文章:

c# - 无法加载角色提供者的类型

asp.net-mvc - 带有 List<BaseClass> 和编辑器模板的 ViewModel

asp.net-mvc - 部分 View 和 ModelState.AddModelError

Spring MVC,捕获@ModelAttribute等对象列表

ios - 到达的远程数据在哪里适合 MVC 模型

c# - WPF - 尝试在任务中打开一个新窗口但收到 "The calling thread must be STA exception"

c# - 配置 Unity 以解析构造函数参数和接口(interface)

c# - 将对象列表数据绑定(bind)到 WinForms DataGridView,但不显示某些公共(public)属性

c# - 有没有办法在最小化进程时也从进程中获取屏幕截图?

ios - 处理 UITableViewcell subview 的 Action (事件)的正确方法是什么?