ฉันจะรับตัวแปรเข้าสู่ตัวควบคุม Silverlight 3 จากโค้ด ASP.NET ของฉันได้อย่างไร

ฉันกำลังเล่นกับ Silverlight 3 อยู่มอ. ฉันกำลังพยายามรับ ID ผู้ใช้ปัจจุบันลงในหน้า Silverlight 3 ฉันค้นคว้ามาบ้างแล้วและดูเหมือนว่า initParams จะเป็นหนทางที่ถูกต้อง ปัญหาคือ ดูเหมือนว่าพวกเขาจะใช้การควบคุม asp:Silverlight และนั่นหายไปใน SL3 ฉันติดอยู่กับการพยายามนำตัวแปรเข้าไปในรายการ initParams โดยสมมติว่านี่เป็นวิธีที่ถูกต้อง

ฉันเริ่มต้นด้วยแอปพลิเคชัน Silverlight 3 ใหม่ชื่อ "MyFirstSilverlightApp" ฉันได้เพิ่มโค้ดเบื้องหลังเพจลงใน "MyFirstSilverlightAppTestPage.aspx" เพื่อให้ฉันทำสิ่งเล็กๆ น้อยๆ ที่ชาญฉลาดได้

ฉันจัดการฮาร์ดโค้ด initParam โดยเพิ่มสิ่งนี้ลงในพารามิเตอร์ของการป้องกันวัตถุ:

    <param name="initParams" value="userID=id42" />

ใน App.xaml.cs ฉันได้เพิ่มสิ่งต่อไปนี้ใน Application_Startup:

    string userID = e.InitParams["userID"];

และฉันได้ส่งผ่านสิ่งนั้นไปยังหน้าของฉันในพารามิเตอร์ในตัวสร้างแล้วใช้สิ่งนั้นในตัวควบคุม นั่นได้ผลทั้งหมด

สิ่งที่ฉันไม่สามารถหาได้คือวิธีรับค่าจากตัวแปรที่ฉันสร้างในโค้ดที่อยู่ด้านหลังลงในคำจำกัดความของค่าชื่อพารามิเตอร์ ความช่วยเหลือใด ๆ จะได้รับการขอบคุณ


person serialhobbyist    schedule 21.09.2009    source แหล่งที่มา


คำตอบ (2)


วิธีหนึ่งที่สกปรกอย่างรวดเร็วคือการใช้ <% %> ในพารามิเตอร์:-

<param name="intiParams" value="userID=<%=myUserID%>" />

โซลูชันที่ฉันชอบคือการสร้าง Silverlight Web Control ของตัวเองซึ่งสามารถเรนเดอร์แท็กอ็อบเจ็กต์และเนื้อหาในลักษณะที่ปรับให้เข้ากับแอปพลิเคชันของฉันได้

person AnthonyWJones    schedule 21.09.2009
comment
อ๋อ มันได้ผล ฉันเห็นการอ้างอิงถึงแท็กเหล่านั้น แต่ไม่มีเครื่องหมาย = ฉันไม่สามารถทำให้มันทำงานได้ อย่างที่คุณพูด มันรู้สึกสกปรกนิดหน่อยแต่ก็ใช้ได้ผลสำหรับสิ่งนี้ ฉันไม่เคยเขียนการควบคุมเว็บเลย - ฉันมักจะตะลุยใน ASP.NET เมื่อต้องทำ ดังนั้นฉันจึงทำเฉพาะเรื่องพื้นฐานเท่านั้น ฉันไม่คิดว่าคุณจะสามารถโพสต์โค้ดตัวอย่างสำหรับสิ่งนั้นได้ใช่ไหม - person serialhobbyist; 21.09.2009

เพิ่มลงในคอลเลกชันทรัพยากรของคุณ

ลองอะไรประมาณนั้น

For Each item As KeyValuePair(Of String, String) In e.InitParams
    Resources.Add(item.Key, item.Value)
Next
person MLT    schedule 21.09.2009
comment
ฉันเดาว่าคุณคงยังไม่เข้าใจปัญหาของฉัน อย่างใดอย่างหนึ่งหรือฉันยังไม่เข้าใจวิธีแก้ปัญหาของคุณ e.InitParams มีอยู่ใน Application_Startup ใช่ไหม ฉันต้องรับพารามิเตอร์ไปที่ e.InitParams ไม่ใช่จาก e.InitParams ฉันกำลังพยายามแทรกมันลงในแอป Silverlight ของฉัน - person serialhobbyist; 21.09.2009
comment
คุณขอโทษ ฉันอ่านข้อความของคุณผิด นี่หมายถึงการจัดการพารามิเตอร์เมื่อส่งผ่านไปยังแอปของคุณ - person MLT; 21.09.2009