के भीतर कार्रवाई पैरामीटर के मान रही मैं एक कार्य है कि मैं jQuery से करने के लिए पोस्ट कर रहा हूँ है। मेरे पास कुछ अन्य समूह क्रियाएं हैं इसलिए मैं यह सुनिश्चित करने के लिए एक प्राधिकरण विशेषता का उपयोग करना चाहता हूं कि परिवर्तन करने वाले व्यक्ति को परिवर्तन करने की अनुमति है।एक कार्रवाई फिल्टर
मेरे पास पहले से AuthorizationAttribute
है जो groupId
को filterContext.HttpContext.Request.Params["groupId"]
तक पहुंचकर सफलतापूर्वक GET अनुरोधों पर पुनर्प्राप्त करता है लेकिन जब POSTs की बात आती है तो यह काम नहीं करती है। 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 })
और पैरामीटर फॉर्म पैरामीटर के रूप में है? क्या QueryString पर यह एक मौका है? – ivowiblo
क्वेरीस्ट्रिंग खाली है। और आपका क्या मतलब है "फॉर्म पैरामीटर के रूप में है"? आप शीर्ष कोड उदाहरण में मेरी कार्रवाई देख सकते हैं – soniiic
क्या आप फॉर्म कोड पोस्ट कर सकते हैं? – ivowiblo