我不确定为什么会发生这种情况,但这里有一些细节可能有助于找到解决方案:
这是构建查询字符串的PageModify.aspx中的一行:
Response.Redirect(string.Format("Editor.aspx?id={0}", pageId,
CultureInfo.CurrentCulture));
当一切正常时,这是查询字符串的输出:
https://example.com/Editor.aspx?id=1dfz342b-3a4d-4255-8054-93916324afs6
这是重定向到Editor.aspx时在浏览器中查看的内容:
https://example.com/Editor.aspx?id=1dfz342b-3a4d-xxxxxxxxxxxxxxx324afs6
当这一行运行时,我们收到一个无效的guid错误:
_PageEditId= new Guid(Request.QueryString["id"]);
有没有人见过这个?可能是IIS设置?这里没有什么特别的,每个人的系统都有相同的基线。它发生在内部和外部客户身上。
答案 0 :(得分:1)
Guid
是一个Structure
,所以当它作为String
的查询字符串出现时你必须解析它:
Guid PageEditId = Guid.Parse(Request.QueryString["id"]); //add null checks or use TryParse
答案 1 :(得分:-1)
我认为-
不是查询字符串值的有效字符,对其进行编码:
Response.Redirect(string.Format("Editor.aspx?id={0}", Server.UrlEncode(pageId),
CultureInfo.CurrentCulture));