ฉันไม่แน่ใจว่าเกิดอะไรขึ้นที่นี่
ฉันมีวิธีการดำเนินการที่เรียกว่าในสคริปต์ jquery ที่ฉันมี...
ondblClickRow: function (id) {
debugger;
var dummyURL ='@Url.Action("EditEncounter", "EditEncounter", new { encounterId = 0, popId = (int)TempData["POPULATIONID"] })';
var path = dummyURL.replace("-2", id);
document.location.href = path;
//new { encounterId = temp.EncounterId, popId = (int)TempData["POPULATIONID"] }'
}
ด้วยเหตุผลบางอย่างเมื่อฉันพยายามนำทางไปยังหน้านี้ผ่านเส้นทางนี้โดยใช้ Chrome ฉันได้รับข้อยกเว้นนี้:
The parameters dictionary contains a null entry for parameter 'popId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult EditEncounter(Int32, Int32)' in 'FocusedReadMissionsRedux.Controllers.EditEncounterController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters
แต่ใน IE ฉันเรียกวิธีการดำเนินการและนำทางไปยังหน้าที่เหมาะสมโดยไม่มีเหตุการณ์เกิดขึ้น ฉันคงขาดอะไรไปใช่ไหม?
อัปเดตแล้ว ฉันสังเกตเห็นว่าฉันได้รับสตริงการสืบค้นนี้...
encounterId=2245&popId=2
สังเกตว่า '&
' และ 'amp;
' ฉันคิดว่าเส้นทางของฉันไม่ได้ตั้งค่าอย่างถูกต้อง ฉันจะลองสองสามอย่างแล้วแจ้งให้คุณทราบว่าจะเกิดอะไรขึ้น
ยืนยันแล้ว
นี่คือเส้นทางที่ฉันมีใน Internet Explorer
encounterId=2245&popId=2
และมันก็ได้ผล ฉันแค่ต้องค้นหาสาเหตุว่าทำไมสิ่งนี้ถึงเกิดขึ้นกับคำขอนี้โดยเฉพาะ
อัปเดต
Visual Studio ไม่ได้อัปเดตไฟล์ cshtml ที่ถูกสร้างขึ้นเมื่อฉันพยายามดีบักโปรแกรมของฉัน ใครเคยประสบปัญหานี้บ้าง และจะผ่านมันไปได้อย่างไร?
Network
ของแถบเครื่องมือนักพัฒนา Chrome มีการร้องขอ URL ใด มันถูกต้องหรือไม่? นอกจากนี้ เมื่อคุณตรวจสอบ HTML ของหน้าเว็บ ค่าของdummyURL
ในมาร์กอัปคือเท่าใด และคำถามสุดท้าย: เกิดอะไรขึ้นกับบรรทัดdummyURL.replace("-2", id)
คุณบันทึกค่าของตัวแปรid
นี้ภายในเมธอดหรือไม่ นอกจากนี้ ดูเหมือนว่าคุณกำลังใช้ TempData อยู่ตรงนั้น เนื่องจากคุณรู้ว่ามันสามารถถูกไล่ออกได้ หากมีการร้องขอจากตัวกลางที่กำลังอ่านข้อมูลอยู่ นี่อาจเป็นคำขอ AJAX เป็นต้น - person Darin Dimitrov   schedule 15.01.2013