我正在使用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'
我看不出这是指哪个领域。我有什么地方可以追查这个吗?
答案 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插件来追踪错误位置。