Czy możesz wysłać podpis swojej metody, która ma akceptować ten post?
Dodatkowo otrzymuję ten sam komunikat o błędzie, prawdopodobnie z innego powodu. Mój YSOD mówił o słowniku nie zawierającym wartości dla wartości nie dopuszczającej wartości null. Sposób, w jaki otrzymałem informacje YSOD, polegał na umieszczeniu punktu przerwania w funkcji $ .ajax, która obsługiwała zwrot błędu w następujący sposób:
<script type="text/javascript" language="javascript">
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
});
};
Wtedy mój errorFunc javascript wygląda tak:
function(request, textStatus, errorThrown) {
$("#install").text("Error doing auto-installer search, proceed with ticket submission\n"
+request.statusText); }
Używając IE poszedłem do menu widoku -> debugger skryptów -> przerwa przy następnej instrukcji. Następnie poszedłem uruchomić kod, który uruchomiłby mój post. Zwykle przenosiło mnie to gdzieś głęboko w bibliotekę jQuery zamiast tam, gdzie chciałem, ponieważ otwieranie listy rozwijanej wyboru wyzwoliło jQuery. Więc uderzyłem w StepOver, wtedy następna linia również się zepsuła, i właśnie tam chciałem być. Następnie VS przechodzi w tryb po stronie klienta (dynamiczny) dla tej strony i $("#install")
wstawiłem przerwę w wierszu, aby zobaczyć (używając myszy nad debugowaniem), co było w żądaniu, status tekstu, błądThrown. żądanie. W request.ResponseText pojawił się komunikat html, w którym zobaczyłem:
<title>The parameters dictionary contains a null entry for parameter 'appId' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ContentResult CheckForInstaller(Int32)' in 'HLIT_TicketingMVC.Controllers.TicketController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.<br>Parameter name: parameters</title>
więc sprawdź to wszystko i opublikuj swój podpis metody kontrolera na wypadek, gdyby to część problemu