在IE7中返回Ajax时出错

时间:2010-04-03 02:43:09

标签: c# asp.net asp.net-mvc

这是我的第一个问题。首先,抱歉我的“不完美”英语...

我正在使用AJAX开发ASP.NET MVC应用程序。

我在视图中有以下代码:

<% using(Html.BeginForm(null, "Home", FormMethod.Post, new{id="formcpf"})){ %>


<p>
   <input name="tipo" type="radio" value="GeraCPF" /> CPF 
    <input type="radio" name="tipo" value="GeraCNPJ" /> CNPJ
</p>


<p>
    <input type="submit" id="sbmt" value="Gerar" /> <br /><br />
    <span id="lblCPF" class="respostaBG"></span>
</p>

以及以下用于调用Ajax请求的Javascript:

 $(document).ready(function() {


    $("form#formcpf").submit(function(event) {
        $(this).attr("action", $("input[@name='tipo']:checked").val());
        event.preventDefault();
        hijack(this, update_sessions, "html");

    });
});

function hijack(form, callback, format) {


    $.ajax({
        url: form.action,
        type: form.method,
        dataType: format,
        data: $(form).serialize(),
        success: callback
    });
}

 function update_sessions(result) {
    $("#lblCPF").html(result);
}
在Firefox和Chrome中

工作正常,但在IE7中有时会将值返回到标签中,有时则不然。我必须继续提交以获得回报。

任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:0)

您是否禁用了缓存?

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]

此属性放在控制器类中,禁用缓存。由于我的应用程序中不需要缓存,因此将其放在BaseController类中:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public abstract class BaseController : Controller
{

以下是有关OutputCacheAttribute的详细说明:Improving Performance with Output Caching

检查禁用是否排除了问题。