在动作方法之间传递变量并在视图上显示?

时间:2019-11-30 02:50:28

标签: asp.net-mvc

我有一个像下面的控制器

           [HttpPost]
            public JsonResult Index(string number)
            {
             ....
                ServiceReference1.WebsiteInterfaceSoapClient APITest = new ServiceReference1.WebsiteInterfaceSoapClient();
                List<ServiceReference1.Student> ListStudents = APITest .CheckIDStudent("xxxxxxxxxxxxx", number).ToList();
             ....

              }

我有这样的方法

    [HttpPost]
    public async Task<ActionResult> ValidateS(StudentsDetails userDetails, string marksPoint)
    { 
            ....
    }

如何将ListStudents之类的(ListStudents[0].ID, ListStudents[0].Name ...)上的所有数据传递到ValidateS方法中,并在View上显示它们?

1 个答案:

答案 0 :(得分:2)

您无法执行[HttpPost]操作的重定向功能。因此,您必须将ValidateS的操作方法更改为[HttpGet]。并使用TempData功能。

[HttpPost]
public JsonResult Index(string number)
{
    ServiceReference1.WebsiteInterfaceSoapClient APITest = new ServiceReference1.WebsiteInterfaceSoapClient();
    List<ServiceReference1.Student> ListStudents = APITest .CheckIDStudent("xxxxxxxxxxxxx", number).ToList();
    TempData["studentList"] = ListStudents;
}

[HttpGet]
public async Task<ActionResult> ValidateS(StudentsDetails userDetails, string marksPoint)
{ 
    List<ServiceReference1.Student> studentList = TempData["studentList"] as List<ServiceReference1.Student>;
}