以前,我将信息传递给Page_Load方法内的Silverlight控件。即。
protected void Page_Load(object sender, EventArgs e)
{
MainContainer.InitParameters = "info=" + CurrentUserID.ToString();
}
在MVC中,没有代码隐藏的概念,我已将用户ID作为模型的一部分传递,但以下代码似乎不起作用:
<asp:Silverlight id="MainContainer"
InitParameters="info=<%= Model.CurrentUserID %>" runat="server"
Source="~/ClientBin/SilverlightControls.xap" ... />
如果您查看呈现给浏览器的代码,它将转义MVC标记,因此它会像这样发送:
value="info=<%= Model.CurrentUserID %>"
如果我尝试使用initParameters =“info = 1”进行硬编码,则可以正常工作。
答案 0 :(得分:2)
不要使用&lt; asp:Silverlight runat =“server”/&gt;控制,它是一个webforms控件,并不真正属于MVC世界。您需要创建&lt; object&gt;标记自己 - 也许创建自己的Html助手扩展方法来创建它。
看一下这篇博文: Integrating Silverlight and ASP.NET MVC
HTH, 查尔斯