2012-10-05 60 views
0

基本上我有我的頁面上使用JavaScript的少數選項卡的MVC網站。返回視圖與參數

然後,我有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方法無效一些屬性,並返回一個視圖。它的作品,但風格缺失,所以必須按照上述方式。

如果沒有錯誤,並且它們寫入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); 
} 

我可以看到帶參數的網址,但jquery似乎不起作用,它只是說無法找到。請幫忙嗎?

+0

'.tabs()'做了什麼? – David

+0

它聲明一個標籤 – Zaki

+0

一個「標籤」?那是什麼,一個插件? – David

回答

0

如果你看看API,你可能能夠找到標籤初始化的ajaxOptions選項。

$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"); 
    } 
} 

請問這是否有幫助..?

P.S.我沒有測試這個。

+0

請參閱我的編輯 – Zaki