Как я могу проверить, какие поля выдают ошибки с ответом Status 500 на вызов Ajax? - PullRequest
2 голосов
/ 16 февраля 2012

Я выполняю отправку Ajax ASP.Net с MVC :

@using (Ajax.BeginForm(
        action,
        "References",
        null,
        new AjaxOptions
        {
            UpdateTargetId = "update-message",
            InsertionMode = InsertionMode.Replace,
            HttpMethod = "POST",
            OnSuccess = success,
            OnFailure = "ajaxOnFailure"
        }, new { @id = "dialogForm", @class = "ui-widget dialog-admin" }))

Что конвертируется в:

<form method="post" id="dialogForm" data-ajax-update="#update-message"
 data-ajax-success="menuDialogSuccess('Create Complete','Create')" 
data-ajax-mode="replace" data-ajax-method="POST" 
data-ajax="true" class="ui-widget dialog-admin" 
action="/Administration/Menus/Create" novalidate="novalidate">

Это ответ с веб-страницей статуса 500 со следующим:

Unable to cast object of type 'System.Int32' to type 'System.String'

Я не вижу, к какому полю это относится. Есть ли место, где я могу отследить это?

Ответы [ 3 ]

6 голосов
/ 16 февраля 2012

Я обнаружил, что проблема вызвана этим:

    [StringLength(3, ErrorMessage="Order must be 3 characters")]
    [Range(0, 99, ErrorMessage = "{0} must be between {1} and {2}")]
    [DisplayName("Order")]
    public int Order { get; set; }

Код пытается получить длину чего-то, что не является строкой.

1 голос
/ 16 февраля 2012

Я думаю, вы должны использовать аддон firebug, чтобы отследить местоположение ошибки.

1 голос
/ 16 февраля 2012

Из кода видно, что ваше действие ожидает ID параметр типа int, пока вы отправляете ему строку "dialogForm".Измените параметр действия ID на string.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...