Silverlight:导航应用模板 - 我们可以使用更清晰的网址吗?和asp.net MVC / Routing这样的网址有哪些?

时间:2011-01-29 14:52:32

标签: silverlight silverlight-4.0 url-routing silverlight-toolkit

我刚刚使用Silverlight导航模板创建了一个新的silverlight应用程序。一切顺利,工作: - )

但是url有一个aspx的扩展...我们不能像asp.net MVC那样删除吗?

    SilverlightApplication1TestPage.aspx

我发现奇怪的下一件事是它如何附加页面名称,它使用#符号如此

    SilverlightApplication1TestPage.aspx#Home

我认为这样做更自然(也像asp.net mvc那样)

     SilverlightApplication1TestPage/Home

     SilverlightApplication1TestPage/About

是否有某种解决方法或某种更新的样本

或者它不可能?

谢谢

3 个答案:

答案 0 :(得分:1)

我正在将Silverlight与Asp.Net MVC一起使用,这是一个示例网址:http://localhost:37920/#/AdvancedSearch。当我直接使用Asp.Net时,是的,我有.aspx文件。它仍然不是你真正想要的,但也许会让你更接近。

答案 1 :(得分:1)

底线是:没有。为了简化它,#之前的所有内容都属于服务器,#之后的所有内容都属于客户端。

从服务器角度来看,Silverlight应用程序完全存在于单个URL(页面)中。当您使用Silverlight导航框架时,您将在此单个HTML页面内的应用程序中移动。

如果#被删除,则会向服务器提取并且结果将替换现有页面,当前SL应用程序将被卸载以替换为生成的内容。即使结果内容是相同的SL应用程序但指向不同的上下文,它仍然会卸载应用程序并重新加载它。

使用#仅仅是在浏览器导航历史记录中要跟踪的Silverlight应用程序中的导航方式。然后,浏览器自己的后退按钮将以不会让用户感到惊讶的方式运行。

答案 2 :(得分:0)

感谢每个人的评论,它让我思考......我想我已经修好了......并找到了使用asp.net 4.0路由的解决方案......

将全局文件添加到asp.net项目,然后将其添加到应用程序启动

// Code that runs on application startup
        RouteTable.Routes.MapPageRoute("SilverlightRoute",
        "MyApp",
        "~/SilverlightApplication1TestPage.aspx");