Passing an array of values in Url.Action
I assume you "own" the controller?
If so, I'd serialize and deserialize the list as a comma separated string on each side.
It'd also be nice if criteria.JobTypes is an empty list instead of a possible null, then you don't need the ?? below.

var redirectUrl = Url.Action("search", new {
    // ...
    jobTypes = String.Join(criteria.JobTypes ?? new string[0], ",")
}


And do jobTypes.split(",") in the action.

URL would look a bit nicer too:

/search?q=developer&amp;advanced=false&amp;salaryfrom=20000&amp;salaryto=80000&amp;jobTypes=Full%20Time,Contract