使用jQuery选项卡ajaxoptions发布数据

时间:2010-12-13 20:06:06

标签: javascript jquery asp.net-mvc jquery-ui

我正在使用以下代码初始化我的标签

 $('#tabs').tabs({
        fx: {
            opacity: 'toggle',
            duration: 'fast'
        },
        select: function () {
            $(this).tabs("option", {
                ajaxOptions: { data: vehicleJson }
             });
        },
        ajaxOptions: {
            type: 'post', 
            success: function(){
                alert('onSuccess');
            }, 
            error: function(){
                alert('onFail');
            }
        }, 
        spinner: ''
    }

在我的控制器中我有:

[HttpPost]
public PartialViewResult Intervals(string vehicleJson)
{
    return PartialView("_Intervals");
}

如果我删除了[HttpPost] attrib,它似乎工作正常,除非它不是我需要的“帖子”。基本上我正在尝试将json对象传递给帖子。我究竟做错了什么?这是我的标签的初始HTML

<ul id="ul-tabs">
    <li><a href="/maintenance/Tabs/Intervals" title="Intervals">Intervals</a></li>
    <li><a href="/maintenance/Tabs/Lifetime" title="Lifetime Services">Lifetime Services</a></li>
    <li><a href="/maintenance/Tabs/Locator" title="Locator">Locator</a></li>
    <li><a href="/maintenance/Tabs/Procedures" title="Procedures">Procedures</a></li>
    <li><a href="/maintenance/Tabs/Specifications" title="Specifications">Specifications</a></li>
    <li><a href="/maintenance/Tabs/Reset" title="Reset">Reset</a></li>
</ul>

如何正确强制链接发帖而不是获取?我想在服务器端使用javascript数据。

感谢您的提示或建议,
干杯,
〜在圣地亚哥

1 个答案:

答案 0 :(得分:5)

您正在覆盖标签选择上的ajaxOptions

这一行:

$(this).tabs("option", { ajaxOptions: {data: vehicleJson}});

将覆盖您之前设置的选项并导致选项卡使用jQuery ajax默认值(type =“GET”)。

您可以像这样解决问题:

var tabAjaxOpts = { 
    type:'post', 
    success:function(){alert('onSuccess');}, 
    error:function(){alert('onFail');}
};

$('#tabs').tabs({
    fx: {
        opacity: 'toggle',
        duration: 'fast'
    },
    select: function () {
        tabAjaxOpts.data = vehicleJson;
        $(this).tabs("option", { ajaxOptions: tabAjaxOpts});
    },
    ajaxOptions: tabAjaxOpts
};