У меня есть страница вакансий, где есть несколько параметров, таких как jobType, рабочая нагрузка и т. Д. На странице могут быть или нет какие-либо/все параметры.Карта маршрута MVC не работает должным образом
Карта маршрутов:
routes.MapRoute(
"JobsRoute",
url: "Jobs/Index/{workload}/{jobType}",
defaults: new { controller = "Jobs", action = "Index", workload = UrlParameter.Optional, jobType = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "PostJob", action = "Index", id = UrlParameter.Optional }
);
Controller (частичный метод код):
public ActionResult Index(string workload = "", string jobType = "")
{
SearchJobs model = new SearchJobs();
using (var context = new OutsourceEntityContext())
{
model.lstJobs = context.Jobs.ToList();
if (!workload.Equals(""))
{
int jobWorkloadKey = context.JobWorkload.Where(t => t.Name.Equals(workload)).First().Key;
model.lstJobs = model.lstJobs.Where(t => t.WorkloadKey == jobWorkloadKey).ToList();
}
}
}
Я хочу, чтобы такие URL, чтобы работать:
http://localhost:51576/Jobs/workload/15-20%20hours%20per%20week
http://localhost:51576/Jobs/workload/15-20%20hours%20per%20week/jobType/Hourly
Спасибо за вашу помощь.
Rohan.
Вы маршрут имеет '/ Работа/Index/{нагрузка}/{jobType}' - если вы не хотите 'Index' в нем, а затем изменить его на'/Работа/{нагрузки}/{jobType } ', но неясно, что вы ожидаете, что ваш второй пример ударит - это совершенно другой маршрут –
второй должен также попасть на ту же страницу со вторым параметром, имеющим какое-то значение .. (не пусто) –
Во втором у вас есть 4 значения маршрута (ваше определение имеет только 2). И только последний параметр может быть вариантом, если вы используете маршруты. Неясно, что вы пытаетесь сделать –