2010-08-12 364 views
1

我试图一起使用Silverlight和MVC。在创建一个简单的Silverlight应用程序之后,我尝试使用MVC主机应用程序(使用提供的aspx和html页面)查看它。问题是,当我查看页面时,我看到的是加载图像(100%的值),这就是全部。它从不显示我的应用程序!Silverlight主机应用程序只显示加载图像

这里是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> 

一切都在应用其他的标准代码(代码生成时我创建了该项目)。有人看过这个问题吗?有什么我失踪了吗?我对这两种技术都很陌生,对任何信息都会非常有帮助。

回答

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”中做一些不合需要的事情。

+0

你说得对,它没有下载。问题出在我创建的应用程序没有找到的一些样式(我最初是在FireFox中测试的,它不会抛出错误,必须去IE)。实际上,应用程序没有发现我放置在Application.Resources(uri映射和样式)中的任何内容。 – 2010-08-13 12:53:10

相关问题