好吧,我在不同的控制器中有2个动作,但是工作过程几乎相同,但是它们的输入参数略有不同。除了模型之外,一个操作是接收一些POST
参数,而其他操作则没有。所以我想通过不同的动作从另一个控制器调用一个动作。因此我也需要传递POST
个参数。那我该怎么办?
例如,我的主要操作与ProcedureController
控制器
public virtual byte[] GenerateProcedureReports(Report model)
{
procedureListIds = Request.Form["ProcedureMultiCheckList"].Trim();
}
点击此处我从procedureListIds
收到Form request
因此,如果我将任何路线重定向到此操作,我该如何发送此参数ProcedureMultiCheckList
我通过研究这些问题1,2,3尝试了这种方式。但是我没有得到任何关于这个问题的解决方案。
我已经通过这种方式尝试了ProcedureJobsController
public virtual ActionResult JobReport(long id)
{
var jobInformation = _procedureJobService.Get(id);
if (jobInformation.IsFromTablet)
{
Report report = new Report();
return RedirectToAction("GenerateProcedureReports", "Procedures", new {report =report, ProcedureMultiCheckList = jobInformation.ProcedureId });
}
}
这里我尝试传递模型和POST
参数(ProcedureMultiCheckList
),但它没有作为Form request
参数接收。那么,我该如何解决这个问题呢?
如果可以做到这一点,我将能够减少数千行代码。非常可怜,嗯?
答案 0 :(得分:0)
我认为它应该是这样的:
public virtual ActionResult JobReport(long id)
{
var jobInformation = _procedureJobService.Get(id);
if (jobInformation.IsFromTablet)
{
Report report = new Report();
TempData["ProcedureMultiCheckList"] = jobInformation.ProcedureId;
return RedirectToAction("GenerateProcedureReports", "Procedures", new {report = report });
}
}
阅读TempData:
var procedureMultiCheckList = TempData["ProcedureMultiCheckList"]
答案 1 :(得分:0)
public class HomeController: Controller
{
public ActionResult MyAction(MyModel model)
{
return RedirectToAction("MySimilarAction", "About", new{model=model, age=40, name="my Name"});
}
}
public class AboutController: Controller
{
public ActionResult MySimilarAction(MyModel model, int age, string name)
{
}
}