ความยาว = 4 มาจากความพยายามในการทำให้วัตถุสตริงเป็นอนุกรม รหัสของคุณใช้ActionLink
วิธีนี้:
public static string ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, object htmlAttributes)
สิ่งนี้จะนำstring
วัตถุ "บ้าน" สำหรับค่าเส้นทางซึ่งการประปา MVC ค้นหาคุณสมบัติสาธารณะเปลี่ยนเป็นค่าเส้นทาง ในกรณีของstring
วัตถุทรัพย์สินสาธารณะเพียงอย่างเดียวคือLength
และเนื่องจากจะไม่มีเส้นทางที่กำหนดไว้ด้วยพารามิเตอร์ Length ซึ่งจะเพิ่มชื่อและค่าของคุณสมบัติเป็นพารามิเตอร์สตริงแบบสอบถาม คุณอาจพบว่าหากคุณเรียกใช้จากหน้าเว็บที่ไม่ได้อยู่ในหน้าHomeController
นั้นจะทำให้เกิดข้อผิดพลาดเกี่ยวกับAbout
วิธีการทำงานที่ขาดหายไป ลองใช้สิ่งต่อไปนี้:
Html.ActionLink("About", "About", new { controller = "Home" }, new { hidefocus = "hidefocus" })