Asp.net mvc 2 ajax.beginform onsucess updatetargetid隐藏输入
我试图通过将函数附加到ajax.beginform.上的ajaxoptions的onsuccess属性来调用jquery ui对话框Asp.net mvc 2 ajax.beginform onsucess updatetargetid隐藏输入,asp.net-mvc-2,ajax.beginform,Asp.net Mvc 2,Ajax.beginform,我试图通过将函数附加到ajax.beginform.上的ajaxoptions的onsuccess属性来调用jquery ui对话框 <script type="text/javascript"> // Dialog $(document).ready(function () { $('#dialog').dialog({ autoOpen: false, width: 600,
<script type="text/javascript">
// Dialog
$(document).ready(function () {
$('#dialog').dialog({
autoOpen: false,
width: 600,
modal: true,
buttons: {
"Ok": function () {
$(this).dialog("close");
}
}
});
});
</script>
然后,我有一个尚未连接的联系人表单,控制器只是用两个字符串响应中的一个进行响应
<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "ContactResult", OnSuccess="EmailResult" }))
{ %>
它正在更新的是
<%= Html.Hidden("ContactResult") %>
这就是问题的症结所在,我把隐藏的输入改成了一个div,效果非常好。不知道为什么,但是。。。如果有人碰到这个,你就去…所以我想这就是我想出来的。。我用两个输入启动了一个新的mvc项目,并开始使用一个警报框,因为它与jquery.ui对话框插件无关。在使用ajax.beginform运行之后,我让它能够正常工作,并显示警报框
长话短说。。您不能在Ajax.BeginForm中为UpdateTargetID使用隐藏输入?我想这是一个问题和答案,但将UpdateTargetID更改为“div”的ID可以修复它,并且可以正常工作。您甚至可以将Div visibility设置为hidden,并且可以正常工作。此外,当您将模式对话框连接到链接时,它也可以正常工作,但在上面的示例中不起作用。实际上,如果将其连接到OnComplete而不是OnSucces,则会出现模式对话框,但仍然会出现相同的错误。
this._onReadyStateChange = function () {
if (a._xmlHttpRequest.readyState === 4) {
try {
if (typeof a._xmlHttpRequest.status === "undefined") return
} catch (b) {
return
}
a._clearTimer();
a._responseAvailable = true;
try {
a._webRequest.completed(Sys.EventArgs.Empty)
} finally {
if (a._xmlHttpRequest != null) {
a._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
a._xmlHttpRequest = null
}
}
}
};
<%= Html.Hidden("ContactResult") %>