C# 将模型从一个页面传递到另一个页面

C# 将模型从一个页面传递到另一个页面,c#,asp.net-mvc,C#,Asp.net Mvc,我们有一个工作申请,使用两步流程。我需要稍微调整一下。我能看到的最简单的方法是从第一步中删除应用程序创建阶段,然后将其传递到第二步,这是一个单独的视图 第1页-步骤1 public ActionResult Apply(JobApplicant jobapp, string HiddenJobId) { jobapp.JobID = Convert.ToInt32(HiddenJobId); //JobsHelper.CreateJ

我们有一个工作申请,使用两步流程。我需要稍微调整一下。我能看到的最简单的方法是从第一步中删除应用程序创建阶段,然后将其传递到第二步,这是一个单独的视图

第1页-步骤1

public ActionResult Apply(JobApplicant jobapp, string HiddenJobId)
        {
            jobapp.JobID = Convert.ToInt32(HiddenJobId);
            //JobsHelper.CreateJobApplicant(jobapp);

            return View("ApplyResume", jobapp); 
        }
上述代码用于
CreateJopApplication()
。我将其注释掉,现在将其传递到下一步/页面

然而,一旦在这个新页面上,我就有了一个
[HttpPost]
,它接受了
jobapp
,但在这一点上它都是空的

jobapp(JobApplication)大约有140列,我不想为所有这些创建一个隐藏的文本字段。有没有一种更简单的方法在两页之间传递模型

第2步-第2页

[HttpPost]
        public ActionResult Upload(HttpPostedFileBase file, string applicantId, string coverLetter, JobApplicant jobapp)
        {
            // jobapp is null during this entire step, passed in null its as if the page before never had it.
            JobsHelper.CreateJobApplicant(jobapp);
            .......

您可以使用
TempData
。它类似于会话状态,但一旦被使用就会被删除。它适合往返一次

使用无状态框架(如MVC),您可以:

  • 使用隐藏字段在窗体内保持
  • 在数据库中持久化
  • 保持会话状态或临时状态

看,需要两个步骤有什么特别的原因吗?在我看来,让一个用户填写140个字段,然后把它们转到另一个步骤,只是为了上传一些东西,这似乎很愚蠢。只需将上传添加到相同的初始步骤即可。@ChrisPratt不是最初设计的方式nope。如果从头开始工作,我会在同一页上设计它。TempData不起作用,但使用会话变量起作用。