Wil*_*eja 14 c# asp.net asp.net-ajax asp.net-mvc-2
我正在使用c#.NET MVC2,我正在尝试创建一个调用删除数据库记录(RemoveRelation)的方法的ajax表单.删除记录的过程按预期工作.删除记录后,表单应调用一个javascript函数,从视觉中删除记录(RemoveRelation(10)).这是通过一个AJAX调用来完成的,在Internet Explorer 9和Firefox 4上都按预期工作,但是由于某些原因,更新没有通过AJAX调用发生,并且当删除记录的表单正在刷新时整个页面都在刷新提交(这是不正确的,因为表单应该是使用AJAX功能生成的).这是我生成表单的代码:
<% using (Ajax.BeginForm("RemoveRelation", "Relations",
new AjaxOptions { OnSuccess = "function() { RemoveRelation(10); } ", InsertionMode = InsertionMode.Replace, UpdateTargetId = "Relation10" },
new { id = "DeleteForm10" }))
{ %>
Run Code Online (Sandbox Code Playgroud)
另外在Chrome上我还有一个单独的Ajax.BeginForm问题.
<% using (Ajax.BeginForm("AddRelation", "Relations", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "AddRelation" }, new { id = "AddRelationForm" }))
{ %>
Run Code Online (Sandbox Code Playgroud)
上面的Begin Form代码用于将关系添加到列表而不是删除它们.我再次强调,在IE9和FF4上,上面的工作正常,在chrome而不是添加一个并通过ajax更新,而是添加记录两次,再次刷新整个页面而不是进行ajax更新.
为什么这会在chrome中崩溃?
SPF*_*ake 12
Microsoft AJAX和某些webkit浏览器存在问题.我不久前遇到过这个问题,修复非常简单.创建一个webkit.js文件并将其放在内容中:
Sys.Browser.WebKit = {}; //Safari 3 is considered WebKit
if( navigator.userAgent.indexOf( 'WebKit/' ) > -1 )
{
Sys.Browser.agent = Sys.Browser.WebKit;
Sys.Browser.version = parseFloat( navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]);
Sys.Browser.name = 'WebKit';
}
Run Code Online (Sandbox Code Playgroud)
然后在ScriptManager中或页面中的某个位置(最好是在母版页中,我将其添加到最后),添加脚本参考:
<Scripts>
<asp:ScriptReference Path="webkit.js" />
</Scripts>
//OR
<script src="webkit.js">
Run Code Online (Sandbox Code Playgroud)
不记得我找到信息的原始网站,但我能从这个页面得到.祝好运!
我找到了一个奇怪的解决方案来解决这个问题。我通过“a”标签调用ajax表单的提交,如下所示:
<A href='#' onclick="javascript:$('#ajaxform').submit();">Remove</a>
Run Code Online (Sandbox Code Playgroud)
由于某种原因,从 'a' 标签调用 '.submit()' 在 chrome 中会出现混乱,导致整个页面刷新而不是 ajax 调用。我通过使用以下代码解决了该问题:
<input type='submit' value='Remove' />
Run Code Online (Sandbox Code Playgroud)
当我需要在输入中添加 javascript 命令以在删除之前要求确认时,此解决方案也有效。唯一的抱怨是我需要交换一些标记,以确保我的按钮在他们提交的表单内发生(据我所知,这并不总是在所有情况下都是可能的)。
| 归档时间: |
|
| 查看次数: |
2062 次 |
| 最近记录: |