我刚刚使用Silverlight导航模板创建了一个新的silverlight应用程序。一切顺利,工作: - )
但是url有一个aspx的扩展...我们不能像asp.net MVC那样删除吗?
SilverlightApplication1TestPage.aspx
我发现奇怪的下一件事是它如何附加页面名称,它使用#符号如此
SilverlightApplication1TestPage.aspx#Home
我认为这样做更自然(也像asp.net mvc那样)
SilverlightApplication1TestPage/Home
SilverlightApplication1TestPage/About
是否有某种解决方法或某种更新的样本
或者它不可能?
谢谢
答案 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");