问题
I want to pass url link like
http://localhost:24873/Jobs/[companyname]
or
http://localhost:24873/[companyname]/Jobs/ (Preferred)
I tried below routing in global aspx file and created controller named Jobs and Index action result with Jobs folder but not working.
routes.MapRoute(
"JobList", // Route name
"Jobs/{companyname}",
new
{
controller = "Jobs",
action = "Index",
companyname = string.Empty
}
);
And my controller:
public partial class JobsController : Controller
{
public ActionResult Index()
{
JobsListModel model = new JobsListModel();
return View(model);
}
}
What I am doing wrong? Please help.
回答1:
You must add this route as the first entry in global.asax, otherwise the request will be routed to the default route (or route before it)
Source
回答2:
To add to the previous answer, if you want your preferred route of http://localhost:24873/[companyname]/Jobs/
to work, add this route, again before your default route.
routes.MapRoute(
"JobList", // Route name
"{companyname}/Jobs",
new
{
controller = "Jobs",
action = "Index",
companyname = string.Empty
}
);
回答3:
Your jobs controller needs an index action with a named parameter of companyname like such:
public ActionResult Index(string companyname)
{
//Do some checking on the name
JobsListModel model = new JobsListModel();
return View(model);
}
You will probably still need the empty action as well:
public ActionResult Index()
{
return Index(string.Empty);
}
Oh, missed this. Like the guy ahead of me said to get your other url to work do this: (http://localhost:24873/[companyname]/Jobs/)
routes.MapRoute(
"JobList", // Route name
"{companyname}/Jobs",
new
{
controller = "Jobs",
action = "Index",
companyname = string.Empty
}
);
回答4:
Try this:-
//Default url
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"",
new { controller = "Home", action = "Index", id = "" }
);
//others url rewriting you want
RouteTable.Routes.MapRoute(null, "Jobs/{companyname}", new { controller = "Jobs", action = "Index" });
来源:https://stackoverflow.com/questions/9706183/mvc-url-routing-for-custom-url