tengo una acción que estoy publicando a partir de jQuery:Obtención de los valores de los parámetros de acción dentro de un filtro de acción
[HttpPost]
public void UpdateGroupName(int groupId, string name)
{
authorisationRepository.UpdateGroupName(groupId, name);
}
Esto funciona bien con el groupId
y name
. Tengo algunas otras acciones grupales, por lo que me gustaría utilizar un atributo de autorización para asegurarme de que la persona que realiza el cambio tenga permiso para realizar el cambio.
Ya tengo una AuthorizationAttribute
que recupera la groupId
con éxito en las solicitudes GET accediendo filterContext.HttpContext.Request.Params["groupId"]
pero cuando se trata de solicitudes POST no funciona. El Request.Form
está vacío y también lo está Request.Params
.
Aquí está el código que tengo en mi autorización atributo:
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);
}
He mirado en este answer pero mi propiedad Form
está vacía :(
actualiza para mostrar posterior 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 })
¿Y el parámetro es como parámetro de forma? ¿Hay alguna posibilidad de que esté en QueryString? – ivowiblo
QueryString está vacío. ¿Y a qué te refieres con "es como parámetro de forma"? Puede ver mi acción en el ejemplo de código superior – soniiic
¿podría publicar el código del formulario? – ivowiblo