2012-08-17 13 views
0

我对请求参数值有一个奇怪的问题。 Silverlight应用程序在aspx页面中打开。当我的queryString包含等号时会出现问题。 我检查在Silverlight应用程序值并发现从URI值从检索为queryString参数值不同:HtmlPage.Document.QueryString参数值与DocumentUri.OriginalString值不同

HtmlPage.Document.DocumentUri.OriginalString:

"http://localhost:8081/SilverlightContainer.aspx?sys_ObjectId=2&sys_Param1={\"p1\":\"Narud\\u017Ebenica =\"}" 

HtmlPage.Document.QueryString [ “sys_Param1” ]:

"{\"p1\":\"Narud\\u017Ebenica " 

如果sys_Param1不包含等号,一切都按预期工作。

谢谢。

+0

这里有什么问题?看来你已经有了解决方案/解决方法。 – jv42 2012-08-20 09:39:11

+0

你在想什么?解析DocumentUri.OriginalString?我不想这样做。我想了解为什么会发生这种情况并正确解决问题。 – Filip 2012-08-20 10:18:14

+0

我认为你必须以某种方式编码'='。看起来QueryString是使用类似于'String.Split('=')'的东西来构造的。 – jv42 2012-08-20 12:16:57

回答

0

我解决了这个问题,通过删除有问题的url部分并从silverlight读取javascript变量,而不是将它传递给查询字符串。 另一种方法是使用javascript encodeURIComponent,但我决定使用变量方法。

我仍然不知道是什么原因导致此问题,因为我的网址看起来正确。