请查看以下代码。它在handler.asxh。
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
new RequestManagementFacade().PinRequest(Int32.Parse(context.Request.QueryString["requestId"]), (Boolean.Parse(context.Request.QueryString["isPinned"])));
}
这显示以下错误。
值不能为空。参数名称:String
由于我有上下文请求查询字符串,因此传递了值,但代码在此阶段中断。
此处理程序将连接到业务逻辑层。
有人可以提供建议吗? 提前致谢
库什
答案 0 :(得分:4)
由于我有上下文请求查询字符串
,因此传递了值
我强烈怀疑你的诊断错误。价值观并没有神奇地消失 - 你需要质疑你的假设。虽然这很容易调试。我建议将代码更改为:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
string requestId = context.Request.QueryString["requestId"];
string isPinned = context.Request.QueryString["isPinned"];
var facade = new RequestManagementFacade();
facade.PinRequest(Int32.Parse(requestId), Boolean.Parse(isPinned));
}
然后真的简单地介绍并了解发生了什么。
答案 1 :(得分:2)
context.Request.QueryString["requestId"]
或context.Request.QueryString["isPinned"]
可能没有返回有效的字符串值。检查两个值是否都在具有正确ID的查询字符串中传递,这些ID当然是requestId
和isPinned
。
答案 2 :(得分:1)
当将值传递给处理程序时,我已将其插入为
"PinRequest.ashx?="+requestId+isPinned"
这给了我结果2True
所以我意识到打嗝是不包括字符串名称
"PinRequest.ashx?requestId=" + this._requestId + "&isPinned=" + this._isPinned
谢谢你们帮助人们
LeviBotelho谢谢你让我检查一下我在检查javascript时错过的东西