2010-08-12 365 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

相關問題