Ich versuche, zwei Werte der folgenden Controller-Aktion jQueryPassing Wert Controller-Aktion
[HttpPost]
public JsonResult Cancel(Guid Id, string cancelReason)
{
//do something
}
Js weitergeben müssen:
CancelProgram = function (Id) {
//this is basically the value from a select tag placed on the form
var reason = $("#CancelReasons").val();
alert(reason);
Origin.ajax({
url: '/ZYX/Cancel?Id=' + Id,
type: 'POST',
dataType: 'json',
data: { cancelReason: reason },
success: function (data) {
alert('success!');
}
});
};
});
Der Wert von cancelReason in der Aktion-Methode ist immer null . Irgendwelche Hinweise darauf, warum das nicht funktioniert?
Was ist 'Origin.ajax'? Ich sehe, dass Ihre Frage mit "jquery" markiert ist, aber mir ist kein "Origin" -Objekt bekannt. Ist es etwas nach Maß? Oder ein Framework von Dritten oder etwas? –
Es ist ein maßgeschneidertes Objekt, aber verhält sich genau wie jQuery – GoldenUser
Ich weiß nicht, ob es sich wie jQuery verhält. Denn wenn es sich wie jQuery verhalten würde, hätte es funktioniert. Wenn Sie 'data: {id: '24fe0c97-c227-4312-91fc-6e651df8b64f', cancelReason: 'irgendeinen Grund'} verwenden, sollten beide Werte gesendet werden. Versuchen Sie, sie hart zu codieren, wie ich gezeigt habe, um sicherzustellen, dass es keine anderen Nebenwirkungen gibt. Verwenden Sie auch ein Javascript-Debugger-Tool wie FireBug. Es ermöglicht Ihnen, die genauen Anfragen/Antworten zu analysieren, die gesendet werden. Sie können sehen, ob die AJAX-Anfrage gültig ist oder nicht. –