C# 将Silverlight应用程序嵌入MVC

C# 将Silverlight应用程序嵌入MVC,c#,asp.net-mvc-5,silverlight-5.0,C#,Asp.net Mvc 5,Silverlight 5.0,我决定将WPFs转换为Silverlight应用程序。我唯一的问题是试图让它在我的MVC web浏览器中显示silverlight应用程序。我将所有silverlight项目添加到MVC项目中。我只是没有让它显示我的silverlight应用程序。有人能告诉我我在CSHTML的asp部分做错了什么吗 <h2>System</h2> <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat

我决定将WPFs转换为Silverlight应用程序。我唯一的问题是试图让它在我的MVC web浏览器中显示silverlight应用程序。我将所有silverlight项目添加到MVC项目中。我只是没有让它显示我的silverlight应用程序。有人能告诉我我在CSHTML的asp部分做错了什么吗

<h2>System</h2>
 <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
  <div id="silverlightControlHost">
     <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="1000" height="800">
        <param name="source" value="/ClientBin/System.xap" />
        <param name="onError" value="onSilverlightError" />
        <param name="background" value="white" />
        <param name="minRuntimeVersion" value="5.0.61118.0" />
        <param name="autoUpgrade" value="true" />
        <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.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>
</asp:Content>
系统
我甚至试图从我添加的项目的根文件夹中获取完整的源路径

<param name="source" value="/System/System.Web/ClientBin/System.xap" /> 

它仍然不会显示silverlight应用程序

我注意到的另一件事是runat=“server”,runat有一条绿色下划线,上面写着:

ASP.NET属性仅在ASP.NET文件中允许

我不知道是否应该这样做


虽然从技术上讲,可以将WPF以Silverlight应用程序的形式嵌入到网站中,但应尽可能避免这种情况,请参阅。也是一本好书


Silverlight应用程序也在沙盒环境中运行,这意味着在您的情况下,每个“页面”都将是不同的“应用程序”。您仍然需要重写和实现特定于web的控制器和视图,以承载每个Silverlight组件。建议考虑重写。

< P>您是否将Silverlight项目添加到MVC项目中?如果您没有,您需要转到您的项目,即您的MVC,右键单击它并转到属性。转到silverlight应用程序,然后在那里添加项目。然后在您当前的代码中尝试一下,看看是否有效。

我理解WPF的问题,这就是为什么我要将这些应用程序变成silverlight。我听说您可以在MVC中显示silverlight.aspx。Silverlights为我提供了比MVC更多的功能。我可以让silverlight应用程序工作并显示所有内容,但当我尝试在MVC中显示这些内容时,这是我目前唯一的问题。上面是我用来显示它的代码。你不能把桌面技术和网络技术混为一谈,期望它们能无缝地协同工作。正如我提到的,您可以在HTML中显示Silverlight应用程序,但它将作为不同的应用程序在自己的沙盒环境中运行。Silverlight只是一个基于web的WPF应用程序主机,就像Flash(现在已经死了)一样,在我看来,这是一个糟糕的问题。如果有一些来源来支持它的说法,这个答案会更有用。就目前情况而言,它并没有提供一个超越个人意见的有充分记录的答案。@JeffYates,你能详细阐述一下你的具体意思吗?这样我就可以编辑答案来改进它了?他基本上是说,你声称在MVC应用程序中使用silverlight应用程序是一种不好的做法。他希望你添加一些资料,证明这样做确实是一种不好的做法。否则,你现在如何拥有它只是你的意见。