內的動作參數值我有我從jQuery的發佈到一個動作:獲得一個動作過濾器
[HttpPost]
public void UpdateGroupName(int groupId, string name)
{
authorisationRepository.UpdateGroupName(groupId, name);
}
也能正常工作與groupId
和name
。我還有其他一些小組操作,因此我想使用授權屬性來確保執行更改的人員有權進行更改。
我已經有一個AuthorizationAttribute
,通過訪問filterContext.HttpContext.Request.Params["groupId"]
在GET請求上成功檢索groupId
,但是當談到POST時,它不起作用。 Request.Form
是空的,Request.Params
也是空的。
下面是我在我的授權屬性代碼:
public int groupId { get; set; }
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
username = httpContext.User.Identity.Name.Split('\\').Last();
// awesome permissions checking goes here...
return authorized;
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
groupId = int.Parse(filterContext.HttpContext.Request.Params["groupId"]); // this line throws an exception
base.OnAuthorization(filterContext);
}
我已經看過這個answer但我Form
屬性爲空:(
更新,以顯示jQuery的崗位:
var serverComm = {
post: function (url, data) {
return $.ajax({
url: url,
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(data)
});
},
get: function (url, data) {
return $.ajax({
url: url,
type: 'GET',
cache: false,
contentType: 'application/json; charset=utf-8',
data: data
});
}
};
// some awesome code later...
serverComm.post(editGroupNameUrl, { groupId: group.id, name: newName })
而參數是Form參數嗎?有沒有機會在QueryString上? – ivowiblo 2012-03-01 15:28:31
QueryString爲空。你是什麼意思「是形式參數」?您可以在頂部代碼示例 – soniiic 2012-03-01 15:32:07
中看到我的操作,您可以發佈表單代碼嗎? – ivowiblo 2012-03-01 15:34:14