El diccionario de parámetros contiene una entrada nula para el parámetro 'appId' del tipo 'System.Int32' no nulo 'para el método' System.Web.Mvc .ContentResult CheckForInstaller (Int32) 'en' HLIT_TicketingMVC.Controllers.TicketController '. Un parámetro opcional debe ser un tipo de referencia, un tipo anulable o ser declarado como un parámetro opcional.
function SubmitAjax(url, message, successFunc, errorFunc) {
$.ajax({
type:'POST',
url:url,
data:message,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success:successFunc,
error:errorFunc
});
};
El objeto de datos se construye de la siguiente manera:
var message={"appId":application.val()};
también he intentado una cadena jsonified:
var message="{'appId':"+application.val()+"}";
y
var message="{'appId':'"+application.val()+"'}";
Validé que el mensaje está llegando con una pr valor int operativo antes de intentar publicar. El puntero del ratón sobre depurador más recientemente mostró: {appId="6"}
la firma del método en el controlador es:
public ContentResult CheckForInstaller(int appId)
Cuando quito el parámetro de la firma del método, no el punto de interrupción en el interior, por lo que es o bien la firma necesitando atributos de algún tipo, o el mensaje no está construido correctamente, creo.
¿Tiene algún resultado cuando está cambiando el int a una cadena: public ContentResult CheckForInstaller (String appId)? – Pbirkoff
¿Qué es ese objeto de aplicación? ¿Estás seguro de que funciona como se esperaba? –
@ çağdaş - sí, cuando paso el mouse sobre el resultado, muestra el valor que espero. @ Pbirkoff - No intenté eso pero encontré el problema, la respuesta a continuación es aceptada. – Maslow