C#学习教程:将模型从一个动作传递到同一控制器中的另一个'm在第二个控制器中接收空值。请建议这里有什么问题。甚至尝试过:returnRedirectToAction("WriteInTemplate",new{statementList=statementList});请帮忙。publicActionResultSendPdfStatement(stringInvoiceNumber){尝试{InvoiceNumber=InvoiceNumber.Trim();ObjectParameter[]parameters=newObjectParameter[1];parameters[0]=newObjectParameter("InvoiceNumber",InvoiceNumber);列表语句List=newList();statementList=_db.ExecuteFunction("uspInvoiceStatement",parameters).ToList();//WriteInTemplate(statementList);返回RedirectToAction("WriteInTemplate",statementList);}catch(Exceptione){InvoiceSearchTool.Models.udtExceptionTableexception=newudtExceptionTable();exception.MethodName="SendPdfStatement";exception.Exception=e.ToString();exception.Date=DateTime.Now;DYNAMICS_EXTEntitiesdb=newDYNAMICS_EXTEntities();db.AddToudtExceptionTables(异常);db.SaveChanges();返回视图(“错误”);}}publicActionResultWriteInTemplate(ListstatementList){try{stringinvoiceNumber=statementList.FirstOrDefault().Invoice.ToString().Trim();.........剪断。..........returnRedirectToAction("CreateMessageWithAttachment","email",invoiceNumber);}catch(Exceptione){InvoiceSearchTool.Models.udtExceptionTableexception=newudtExceptionTable();exception.MethodName="WriteInTemplate";exception.Exception=e.ToString();exception.Date=DateTime.Now;DYNAMICS_EXTEntitiesdb=newDYNAMICS_EXTEntities();db.AddToudtExceptionTables(异常);db.SaveChanges();返回视图(“错误”);通过您的模型在此处看到您没有传递“statementList”,而是传递了new{statementList=statementList}只是传递了模型,您应该没问题returnRedirectToAction("WriteInTemplate",statementList);answersinoRedirectToAction()会将命令Write重定向到浏览器,以便它开始向WriteInTemplate()发出全新的请求。因此,您的模型对象将丢失。WriteInTemplate()是一个独立的操作,有时会处理来自用户的整个请求或来自视图的部分请求吗?如果不是,您应该将其称为常规方法而不是使用RedirectToAction()。这是因为您指定了错误的路由参数。在思考这个问题时,你确定数据不为空吗?您正在使用returnRedirectToAction("WriteInTemplate",statementList);相反,您应该使用returnRedirectToAction("WriteInTemplate","controllerName",new{"statementList"=stetementList});请参考上面的C#学习教程:同一控制器中从一个action到另一个action共享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注给它。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
