หลังจากอ่านอีกครั้ง ฉันคิดว่าอาจต้องการข้อมูลเพิ่มเติม แต่นี่คือสิ่งที่ฉันแนะนำจนถึงตอนนี้
ฉันสมมติว่า InternalTags เป็นตัวควบคุมของคุณ และการทดสอบคือการกระทำของคุณ
หากต้องการให้มี ArticleID
ใน URL คุณต้องเพิ่ม ArticleID
เป็น "routeValue
"
แต่สิ่งนี้จะไม่แก้ไขได้อย่างสมบูรณ์
เพจของคุณอยู่ในแท็ก/InternalTag/Test
ลิงก์ของคุณในหน้าทดสอบของคุณถูกกำหนดเป็น:
<%: Html.ActionLink("Test", "DisplayArticle", "News")%>
จะแก้ไขเป็น: http://localhost:1338/Tags/News/DisplayArticle
หากคุณเพิ่ม ArticleID ให้กับลิงก์ (ตามด้านล่าง):
<%: Html.ActionLink("Test", "DisplayArticle", "News", new {ArticleID = "b491bee6-772c-4184-804a-13e53e50aa3d"}, null)%>
อีกทางหนึ่ง:
<%: Html.ActionLink("Test", "DisplayArticle", new {Controller="News", ArticleID = "b491bee6-772c-4184-804a-13e53e50aa3d"})%>
การดำเนินการนี้จะแก้ไขเป็น Tags/News/DisplayArticle?ArticleID={GUID}
ในกรณีที่ฉันพลาดบางสิ่งบางอย่าง ฉันจะกล่าวถึงมุมอื่น:
สำหรับฉัน แท็กคือไซต์ที่คุณเข้าชม ซึ่งจะทำให้ News เป็นไซต์ที่แตกต่างไปจากเดิมอย่างสิ้นเชิง หากคุณต้องการไปที่นั่น คุณจะต้องฮาร์ดโค้ดลิงก์ของคุณเป็น: http://localhost:1338/News/ข่าว/DisplayArticle?ArticleID=b491bee6-772c-4184-804a-13e53e50aa3d.
หากเป็นไซต์เดียวกัน คุณจะต้องจัดเรียงเส้นทางใน Global.asax ของคุณ
บางทีคุณสามารถแสดงความคิดเห็นกับคำตอบของฉันได้และฉันจะแก้ไขตามนั้น
แก้ไขหลังจากความคิดเห็นที่ 1: หากคุณสามารถจัดทำแผนที่เส้นทางได้อย่างถูกต้อง การใช้ลิงก์การดำเนินการบ่อยครั้งก็เพียงพอแล้วในการเลือกเส้นทางที่ถูกต้อง โดยจะต้องดูว่าเส้นทางของคุณแสดงไว้อย่างไร และเปลี่ยนลำดับและค่าเริ่มต้น ค่าที่ใช้เพื่อให้แน่ใจว่าลายเซ็นมีความเฉพาะเจาะจงเพียงพอที่จะเลือกเส้นทางที่คุณต้องการ
หากต้องการบังคับให้เส้นทางไปยังตัวเลือกเฉพาะ คุณสามารถใช้ Html.RouteLink(linkText,routeName,routevalues)
ซึ่งจะช่วยให้คุณสามารถควบคุมเส้นทางที่แน่นอนที่คุณต้องการใช้ จากนั้นส่งผ่านค่าเส้นทางสำหรับตัวควบคุม การดำเนินการ และ ArticleID
person
Luke Duddridge
schedule
05.01.2011