Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery表单提交时出现浏览器警告_Jquery_Asp.net Mvc 3_Post_Form Submit - Fatal编程技术网

jQuery表单提交时出现浏览器警告

jQuery表单提交时出现浏览器警告,jquery,asp.net-mvc-3,post,form-submit,Jquery,Asp.net Mvc 3,Post,Form Submit,我正在使用MVC3开发一个网站,当用户在主页选择列表中选择首选语言时,以下代码将处理该事件。它将读取选择列表的值并将其保存到cookies。最后,我将提交表单以便回发页面 $(document).ready(function () { $('#lang').change(function () { var languageId = $('#lang').val(); document.cookie = 'culture=' + languageId;

我正在使用MVC3开发一个网站,当用户在主页选择列表中选择首选语言时,以下代码将处理该事件。它将读取选择列表的值并将其保存到cookies。最后,我将提交表单以便回发页面

$(document).ready(function () {
    $('#lang').change(function () {

        var languageId = $('#lang').val();

        document.cookie = 'culture=' + languageId;

        $('#postback').submit();
    });
});
现在的问题是浏览器在我重新加载页面时不断警告我

$(document).ready(function () {
    $('#lang').change(function () {

        var languageId = $('#lang').val();

        document.cookie = 'culture=' + languageId;

        $('#postback').submit();
    });
});
chrome说:

您正在查找输入的已用信息的页面。 返回到该页面可能会导致重复您采取的任何操作。 你想继续吗

firefox说:

要显示此页面,Firefox必须发送以下信息: 将重复任何操作(如搜索或订单确认) 这是早些时候执行的

原因是什么?如何解决呢

编辑

 public ViewResult Index()
    {
        int languageId = LocalizationHelper.TryGetCookiesLanguageId();

        LoginPageViewModel model = new LoginPageViewModel
        {
            LanguageId = languageId,
            Languages = Mapper.Map<IEnumerable<SvcLanguageList>, IEnumerable<Language>>(new[]{
             new SvcLanguageList{ LanguageId = 1, LanguageName="English" },
             new SvcLanguageList{ LanguageId = 2, LanguageName="简体中文" },// Simplified Chinese
             new SvcLanguageList{ LanguageId = 3, LanguageName="繁體中文" },// Traditional Chinese
            })
        };

        return View(model);
    }
这是我在控制器中的操作

 [HttpPost]
    public ActionResult ChangeCulture(string culture, string returnUrl)
    {
        Session["CultureInfo"] = new CultureInfo(culture);
        Response.Cookies["culture"].Value = culture;
        Response.Cookies["culture"].Expires = DateTime.UtcNow.AddYears(1);
        if (Request.IsAjaxRequest())
        {
            return new EmptyResult();
        }
        else
        {
            return Redirect(returnUrl);
        }
    }

当您提交表单时,您会被重定向到一个新页面,该页面是
POST
ed上一页的内容。如果没有
POST
ed的表单内容,该页面将不存在。因此,尝试返回该页面将需要将相同的数据重新
POST
ed到该页面


要解决这个问题,您需要克服
POST
ing到该页面的问题,最有可能是Ajax请求。

您的控制器函数在做什么?如果您只是返回
视图
,您可以返回
重定向到操作
,如果您想留在该页面上。

尝试在
$(“#回发”)之前执行
$(“#回发”)重置()
。提交()
(如果cookie是您唯一感兴趣的内容)只要在收到该消息时点击continue,相同的数据将被重新发布。不过Ajax肯定更优雅。Ajax的目的是让响应异步,然后自己更新页面。使用
位置
是您自己的选择。