PDA

View Full Version : حرفه ای: روتینگ



hmahdavi921
سه شنبه 07 آذر 1396, 16:58 عصر
با سلام خدمت مهندسان گرامی
در سایتم یک اکشن با این ورودی ها دارم

public ActionResult Index(int? DepProvince, int? From, int? DesProvince, int? To, string DepartureDate, bool? IsForeign)
حالا میخوام با استفاده از امکان Attribute Routing کوئری استرینگ که دارم رو تبدیل به روت کنم. یعنی این کوئری استرینگ

/Bus?DepProvince=11000000&From=11321006&RetProvince=31000000&To=31310000&DepartureDate=1396%2F09%2F07&IsForeign=False

باید تبدیل بشه به


/Bus/11000000-11321006/31000000-31310000/13960907/0

البته این مورد رو با استفاده از IRouteConstraint پیاده کردم اما الان کاربر هر مقداری بخواد میتونه وارد کنه چون کلا یک رشته بیشتر نیست اما من میخوام همین رو با Attribute Routing پیادهسازی کنم تا نوع پارامترها هم مشخص باشه
در RoutConfig.cs این موارد رو دارم :


routes.MapMvcAttributeRoutes();


routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


//---------------------BusRoute---------------------------
routes.MapRoute(
name: "BusRoute",
url: "{*permalink}",
defaults: new { controller = "Bus", action = "Index" },
constraints: new { permalink = new BusConstraint() },
namespaces: new[] { "TravelEnterProject.Controllers" }
);


من از این attributeدر بالای اکشن Index استفاده کردم به این صورت :


[Route("bus/{DepProvince}{From}/{DesProvince}-{To}/{DepartureDate}/{IsForeign}")]
public ActionResult Index(int? DepProvince, int? From/*City*/, int? DesProvince, int? To/*City*/, string DepartureDate, bool? IsForeign){}
اما موقع اجرای پروژه این خطا رو بهم میده :
147177

لطفا راهنمایی کنید .

hmahdavi921
چهارشنبه 08 آذر 1396, 08:55 صبح
من Attribute رو به این صورت تغییر دادم و خطا رفع شد :

[Route("bus/{DepProvince:int}/{From:int}/{DesProvince:int}/{To:int}/{DepartureDate}/{IsForeign}")]


اما حالا چطور میتونم نوع boolean رو به یک Attribute انتصاب بدم ؟