在我的 Jquery 中,
getcustomHeaders函数返回
{
"customHeaders": {
"customId": "26",
"screenData": "width=1920&height=1080&scaling-factor=1&colour-depth=24",
"screenSize": "width=1920&height=1080",
}
}
另一个功能可以,
$.ajax({
url: 'someName/Submit?productId=' + productId,
type: 'post',
headers: getcustomHeaders()
})
.success(function(d) {
if (d && d.responseJSON && d.responseJSON.Message) { alert(d.responseJSON.Message); }
})
.error(function(d) {
if (d && d.responseJSON && d.responseJSON.Message) {
alert(d.responseJSON.Message);
} else {
alert(display_some_error_message);
}
});
在.Net中,
var request = HttpContext.Current.Request;
request.Headers["customHeaders"];
-- 返回当前对象,但无法访问该对象中的值。
我试过了,
request.Headers["customHeaders"]["customId"] -- NameValueCollection doesn't contain a definition for 'customHeaders'
request.Headers["customHeaders"].GetValues("customId").FirstOrDefault() -- 'string' does not contain a definition for 'GetValues'
有人可以告诉我如何获取“customId”的值吗?
既然你这么说
在.Net中,
var request = HttpContext.Current.Request;
request.Headers["customHeaders"];
-- Returns the current object, but cannot access the values from the object.
我认为您需要将 customHeaders json 反序列化为 .Net 中的等效自定义对象,然后访问该属性。
public class CustomHeaders
{
public int CustomId {get;set;}
public string ScreenData {get;set;}
public string ScreenSize {get;set;}
}
然后在你的
var customHeadersObj = JsonSerializer.Deserialize<CustomHeaders>(HttpContext.Request.Headers["CustomHeaders"])
一旦执行此操作,您将能够像这样访问属性:
customHeadersObj.CustomId
注意:如果您没有使用带有大小写的确切名称,请确保将 Jsonproperty 属性添加到属性中,例如 Ajax 调用中的“customId”与 .Net 中的“CustomId”