AMcoder - javascript, python, java, html, php, sql

Ինչպե՞ս քարտեզագրել երթուղին երկու պարամետր արժեքով, որտեղ երկրորդ պարամետրը պարտադիր չէ:

Ես դժվարանում եմ երթուղու քարտեզագրման մեջ: Ես ունեմ 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-ն չի աշխատում:

MVC-ում բազմաթիվ ընտրովի պարամետրեր չեն աշխատում


  • փորձե՞լ եք գերբեռնել մեթոդը: 09.01.2015
  • Ցույց տվեք երթուղին ձեր մյուս երթուղիների համատեքստում: 09.01.2015
  • Ունե՞ք մեկ այլ երթուղի, որն ընդունում է նույն URL-ը: 09.01.2015
  • @AntP Ես խմբագրել եմ իմ հարցը և ցույց եմ տվել ամբողջ RegisterRoutes մեթոդը: Ես ընդամենը երկու երթուղի եմ քարտեզագրված, և առաջինը լռելյայն երթուղի է: 10.01.2015

Պատասխանները:


1

/Blog/Category/programming-ը համընկնում է առաջին երթուղու հետ (կանխադրված), որը չպետք է խնդիր ունենա Բլոգի կարգավորիչում Կատեգորիայի գործողությունը կանչելու հետ կապված, բացառությամբ, որ category պարամետրը կլինի զրոյական, քանի որ լռելյայն երթուղու երրորդ հատվածը id պարամետրն է, ոչ թե category: Կատարեք հետևյալներից մեկը.

  • Տեղադրեք լռելյայն երթուղին վերջին
  • Վերանվանել category պարամետրը id
10.01.2015
  • Այո դու ճիշտ ես. Այն լռելյայն գնում էր լռելյայն ճանապարհով: Այսպիսով, ես վերջապես տեղադրեցի լռելյայն երթուղին և այժմ այն ​​լավ է աշխատում: Շնորհակալություն Մաքս, դու լուծեցիր իմ հարցը: 12.01.2015
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..