如何通过Ajax调用检查哪些字段出现错误?

时间:2012-02-16 06:56:07

标签: asp.net-mvc asp.net-mvc-3

我正在使用MVC 执行Ajax提交ASP.Net

@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 个答案:

答案 0 :(得分:6)

我发现问题是由此引起的:

    [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 :(得分:1)

在您发送时,从代码中可以看出您的操作需要ID类型int参数 它是一个字符串"dialogForm"。将您的操作参数ID更改为string

答案 2 :(得分:1)

我认为您应该使用firebug插件来追踪错误位置。