يمكنني أن أجعل ASP.NET MVC Html.RouteLink () إرجاع رابط لصفحة بيتي دون هوية؟

StackOverflow https://stackoverflow.com/questions/660373

سؤال

ولقد حصلت على طريق واحد في الصفحة Global.asax.vb لي مثل هذا ...

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
    routes.MapRoute( _
        "IdOnly", _
        "{id}", _
        New With {.controller = "Page", _
                  .action = "Details", _
                  .id = "7"} _
    )
End Sub

وهذا هو id لصفحتي الرئيسية. يتم عرضه عندما يتنقل شخص إلي: http://example.com/

ولكن، وهذا يعمل أيضا: http://example.com/7

وأود أن لا علاقة في أي مكان على موقعي على العنوان مع id من 7. ولكن، وظيفة Html.RouteLink() يولد هؤلاء.

لنموذج عرض هذا الطفل من الصفحة الرئيسية ...

<%=Html.RouteLink(Model.Parent.Title, _
                  "IdOnly", _
                  New With {.id = Model.Parent.Id})%>

... يولد علامة مرساة التالية:

<a href="/7">Home</a>

وكيف يمكنني تجاوز href إنشاؤها بواسطة الدالة Html.RouteLink() للصفحة الرئيسية الخاصة بي؟

هل كانت مفيدة؟

المحلول

وإضافة خط جديد قبل مسار الرحلة "IdOnly" للصفحة الرئيسية:

routes.MapRoute( _
    "HomePage", _
    "", _
    New With {.controller = "Page", _
              .action = "Details", _
              .id = "7"} _
)

وRouteLink سوف تستخدم الخرائط لأول مرة يقابل في جدول التوجيه لتوليد الارتباط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top