Можете ли вы опубликовать подпись вашего метода, который должен принять это сообщение?
Кроме того, я получаю то же сообщение об ошибке, возможно, по другой причине. Мой 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
});
};
Тогда мой errorFunc JavaScript выглядит так:
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>
проверьте все это и опубликуйте подпись метода контроллера на случай, если это является частью проблемы