Ես դժվարանում եմ երթուղու քարտեզագրման մեջ: Ես ունեմ ActionResult
երկու պարամետրով, որտեղ առաջին պարամետրը (կատեգորիան) պարտադիր է, իսկ երկրորդ պարամետրը (էջի համարը) պարտադիր չէ: Այժմ ես ուզում եմ քարտեզագրել մի երթուղի, որը կարող է աշխատել url-ի համար:
ie.
1). http://example.com/Blog/Category/programming
2). http://example.com/Blog/Category/programming/1
որտեղ programming
-ը կատեգորիան է, իսկ /1
-ը՝ էջի համարը:
Ահա իմ ActionResult
-ը.
public ViewResult Category(string category, int? p = 1)
{
int pageNo = 1;
if (p != null)
pageNo = Convert.ToInt32(p);
//other code
return View("Posts", myViewModel);
}
Սա իմ քարտեզագրված երթուղին է.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Blog", action = "Posts", id = UrlParameter.Optional }
);
//This route does not work
routes.MapRoute(
"MyCategory",
"Blog/Category/{category}/{p}",
new { controller = "Blog", action = "Category", category = "", p = UrlParameter.Optional }
);
}
Այժմ խնդիրն այն է, որ երբ ես փորձում եմ նավարկել էջը երկու պարամետրով, այն լավ է աշխատում: բայց, երբ ես փորձում եմ առանց էջի ոչ, այն ինձ սխալ է տալիս «Սերվերը չի գտնվել»:
Ես նաև կարդացել եմ մի քանի գրառում, որտեղ առաջարկել են այսպիսի լուծում. Բայց դեռ ID-ն չի աշխատում: