如何从Controller向另一个控制器发送下拉列表值

时间:2014-08-13 12:14:40

标签: c# asp.net-mvc

我想将下拉列表选择值从Controller发送到另一个控制器

并恢复该值(我知道如何发送它),但我不知道如何恢复它

控制器1:

public class PosteController : Controller
{

    [HttpPost]
    public ActionResult Index(CandidateModel Id)
    {

       return RedirectToAction ("Inscription","Candidate",Id);

    }



public class CandidateController : Controller
{

    [HttpPost]
    public ActionResult Inscription()
    {

       ...........

    }

2 个答案:

答案 0 :(得分:1)

您可以使用TempData

[HttpPost]
public ActionResult Index(CandidateModel Id)
{
   TempData["var"] = id;
   return RedirectToAction ("Inscription","Candidate",Id);

}

public ActionResult Inscription()
{

   var id = TempData["id"] as CandidateModel;

}

答案 1 :(得分:1)

方法1:

使用对象路由:

public class PosteController : Controller
{     
    [HttpPost]
    public ActionResult Index(CandidateModel Id)
    {
       return RedirectToAction ("Inscription","Candidate",new{ dropdownval=Id.val,Id });  
    }

public class CandidateController : Controller
{
    public ActionResult Inscription(int? dropdownval)
    {
       ...........
    }

方法2:

使用TempData:

public class PosteController : Controller
{     
    [HttpPost]
    public ActionResult Index(CandidateModel Id)
    {
       TempData["Id"]=Id.val;
       return RedirectToAction ("Inscription","Candidate"); 
    }

public class CandidateController : Controller
{
    public ActionResult Inscription()
    {
      var id=TempData["Id"];
       ...........
    }

在上面的示例中,Id.val是选定的下拉值。