0

基本上我的 MVC 网站在我的页面上有几个标签,它使用 JavaScript。

然后我有 JavaScript 方法来读取这个 URL 并使用 AJAX 来选择适当的选项卡,如下所示:

function onbodyLoad(URL) {

    if (URL.indexOf("Login/Register") != -1) {
        var index = 4;
        var $tabs = $('#tabs').tabs();
        $tabs.tabs('url', index, "/Login/RegistrationConfirmation");
        $tabs.tabs('select', index + 1); 
        $tabs.tabs('select', index); 
    }
}

现在我在控制器的 httppost 方法中检查几个属性为 null 并返回一个视图。它有效,但缺少样式,因此必须按照上述方式进行。

如果没有错误并且它们为空写入 url“错误”,是否可以写入页面 URL“成功”。所以在上面的函数中,我可以检查 URL 并转发到适当的选项卡。

或者也许编写一个带有参数的 actionresult 方法并返回它。但不知道......任何人都可以阐明一些光

希望这是有道理的。


更新: 在我的控制器上,我这样做是为了将参数添加到我的注册视图中:

RouteValueDictionary rvd = new RouteValueDictionary();
rvd.Add("ParamID", "1");
return RedirectToAction("Register", "Login", rvd);

而 Jquery 我这样做是为了阅读 url 并选择该选项卡:

if (URL.indexOf("Login/Register?ParamID=1") != -1) {
    var index = 2;
    var $tabs = $('#tabs').tabs(); 
    $tabs.tabs('url', index, "/Login/Register");
    $tabs.tabs('select', index + 1); 
    $tabs.tabs('select', index); 
}

我可以看到带有参数的 url,但 jquery 似乎不起作用,它只是说找不到。请问有什么帮助吗?

4

1 回答 1

0

如果您查看 API,您可能会找到用于选项卡初始化的 ajaxOptions-option。

$tabs.tabs({ ajaxOptions: { async: false } });

$tabs.tabs({ ajaxOptions: { async: false } });

更合适的是:

// Definition of the tabs variable, note in particular the argument 'ajaxOptions'
var $tabs = $('#example').tabs({
    ajaxOptions: {
        success: function() {
            $tabs.tabs('select', getIndex() + 1); 
            $tabs.tabs('select', getIndex() );
        },
        error: function() {}
    }
});

function getIndex() {
    return 4;
}

function onbodyLoad(URL) {

    if (URL.indexOf("Login/Register") != -1) {

        var $tabs = $('#tabs').tabs();
        $tabs.tabs('url', index, "/Login/RegistrationConfirmation");
    }
}

这会有帮助吗..?

PS我没有测试这个。

于 2012-10-05T08:29:53.830 回答