-1

I have a class JobSeekerViewModel. I want to Send it from Action method Index to Details. but whenever I send I get null values. but my model is populated.

public class JobSeekerViewModel
{
    public user userJobSeeker { get; set; }

    public employee employeeJobSeeker { get; set; }
       }
}

index(login log1)
{
    Return View(log1);
}


[HttpPost]
index (login log1) 
{
    JobSeekerViewModel js = new JobSeekerViewModel();
    js.userJobSeeker = log1.userJobSeeker;
    js.employeeJobSeeker = log1.employeeJobSeeker;
    return Details(js);
}
Details(JobSeekeerViewModel js)
{
     Return View(js);
}
Shakhawat95
  • 443
  • 1
  • 6
  • 19

6 Answers6

1

Index

        TempData["jobSeeker"] = jobSeeker;

Details

        JobSeekerViewModel jobSeeker = (JobSeekerViewModel)TempData["jobSeeker"];
Nabin
  • 163
  • 1
  • 12
0

try this instead

index (JobSeekerViewModel js) 
{
   return RedirectToAction("Details", new{model = js});
}
0

This may help you, I hope you get the idea.

Index (login log1) 
{
  //get your JobSeekerViewModel and then use it.

   return RedirectToAction("Details", new { model = jobSeekerViewModel });
}

Details(JobSeekerViewModel model) 
{
   return View(model);
}
LP. Gonçalves
  • 454
  • 8
  • 26
  • yup. my controller is not null. Now I am getting a peculiar error. that is The model item passed into the dictionary is of type 'job_management_two.Models.JobSeekerViewModel', but this dictionary requires a model item of type 'job_management_two.Models.Login' – Shakhawat95 Mar 25 '16 at 22:25
  • This error occurs when it is passed a different type object than is expected by your Action or View. – LP. Gonçalves Mar 27 '16 at 03:10
0

When you use redirectToAction the data is not preserved between the controller and the view and hence you get null

Either use TempData or call the method details() directly instead of redirectToAction

Read this for examples : Can we pass model as a parameter in RedirectToAction?

funie200
  • 3,688
  • 5
  • 21
  • 34
Polynomial Proton
  • 5,020
  • 20
  • 37
0

if your action is in the same controller you don't need to call RedirectToAction.

simply call action like:

index (login log1) 
{
    JobSeekerViewModel js = new JobSeekerViewModel();
    js.userJobSeeker = log1.userJobSeeker;
    js.employeeJobSeeker = log1.employeeJobSeeker;
    return Details(js);
}
esiprogrammer
  • 1,438
  • 1
  • 17
  • 22
0

To Send model from one action to another action -

In Action to set model:

TempData["myId"] = myIdToTransfer;

In another Action get model:

String userID = TempData["myID"].ToString;

To send model from an action to view

In action to set model:

ViewBag.myId = myIdToTransfer;

In View to get model:

@Html.ViewBag.myId
S Jayesh
  • 191
  • 1
  • 4
  • 19