Чи можете ви опублікувати підпис свого методу, який повинен прийняти цю публікацію?
Крім того, я отримую одне і те ж повідомлення про помилку, можливо, з іншої причини. Мій YSOD говорив про словник, що не містить значення для ненульового значення. Я отримав інформацію YSOD, щоб поставити точку зупинки у функції $ .ajax, яка обробляла повернення помилки наступним чином:
<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
});
};
Тоді мій javascript errorFunc такий:
function(request, textStatus, errorThrown) {
$("#install").text("Error doing auto-installer search, proceed with ticket submission\n"
+request.statusText); }
За допомогою IE я перейшов до меню перегляду -> налагоджувач сценарію -> перерва при наступному висловлюванні. Потім перейшов до запуску коду, який запускав би мою публікацію. Зазвичай це заводило мене десь глибоко всередину бібліотеки jQuery, а не туди, куди я хотів, тому що випадаюче меню, що відкривається, викликало jQuery. Тож я натиснув StepOver, тоді фактичний наступний рядок також зламався б, де я хотів бути. Потім VS переходить на клієнтський (динамічний) режим для цієї сторінки, і я роблю перерву на $("#install")
рядку, щоб я міг побачити (за допомогою наведення миші над налагодженням), що було в запиті, textStatus, errorThrown. запит. У request.ResponseText було повідомлення HTML, де я побачив:
<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>
тож перевірте все це та опублікуйте підпис методу контролера на випадок, якщо це частина проблеми