我试图一起使用Silverlight和MVC。创建一个简单的Silverlight应用程序后,我尝试使用MVC宿主应用程序(使用提供的aspx和html页面)查看它。问题是,当我查看页面时,我看到的只是加载图像(具有100%的值),这就是全部。它永远不会显示我的应用程序!
这是aspx页面的html:
<form id="form1" runat="server" style="height:100%">
<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/MVCSilverlight.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40818.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
</form>
这是应用程序的xaml:
<UserControl x:Class="MVCSilverlight.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
xmlns:uriMapper="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Controls.Navigation"
mc:Ignorable="d"
d:DesignHeight="500" d:DesignWidth="500">
<Canvas x:Name="LayoutRoot" Background="Crimson">
<TextBlock Text="Hello World" ></TextBlock>
</Canvas>
</UserControl>
应用程序中的其他所有内容都是标准代码(我在创建项目时生成的代码)。以前有人见过这个问题吗?有什么东西我不见了吗?我对这两种技术都很陌生,任何信息都会非常有用。
答案 0 :(得分:1)
当您运行应用程序时,请检查VS是否已附加到浏览器进程以进行Silverlight调试(而不是脚本)。
另请检查您的App.xaml.cs包含: -
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
}
在RootVisual
未设置的情况下,加载启动画面将保留在原位。因此,要么代码没有设置它,要么发生错误(并且由于某种原因,您没有收到错误警告),因此代码永远不会到达RootVisual
的分配。
还可以获得一个名为Fiddler的免费HTTP调试工具,这样您就可以跟踪所有实际的HTTP会话,可能由于某种原因,根本没有下载xap。事实上,这是我的猜测,MVC路由可能正在使用“ClientBin / MVCSilverlight.xap”做一些不受欢迎的事情。