2017-08-07 67 views
0

我有一個下拉列表。我想單擊任何項​​目,然後通過參數重定向視圖。將兩個參數傳遞給控制器​​,語法錯誤

$(document).ready(function() { 
     $("#Languages").change(function() { 
      var selectedValue = $(this).find('option:selected').val(); 
       window.location.href = "/Survey/SelectLanguage/" + selectedValue+"/id/"[email protected]; 

     }); 
    }); 

在控制器的操作方法是:

public ActionResult SelectLanguage(string languageName, Guid id) 
    { 
    } 

但我鉻調試中發現,有一個錯誤。

Uncaught SyntaxError: Invalid or unexpected token 

如果我將它註釋掉代碼window.location.href = "/Survey/SelectLanguage/" + selectedValue+"/id/"[email protected];

然後錯誤消失了。那麼,什麼是錯的?

回答

0

變化

window.location.href = "/Survey/SelectLanguage/" + 
    selectedValue + "/id/" + @Model.CampaignGuid; 

window.location.href = "/Survey/SelectLanguage/" + 
    selectedValue + "/id/@Model.CampaignGuid"; 

如果CampaignGuid真是Guid,那麼你寫出"/id/" + d0164584-bac0-485b-8a84-b7923caa6ee7到HTML,而Chrome的JavaScript引擎不知道什麼d0164584-bac0-485b-8a84-b7923caa6ee7是,它需要是一個字符串。

+0

我得到了404錯誤。 – Bigeyes

+0

@Bigeyes這是一個不同的問題。這應該解決你的'未捕獲的SyntaxError:無效或意外的令牌問題。 –

+0

我的意思是控制器的操作代碼沒有被URL訪問。 – Bigeyes

0

那麼,由於您沒有定義網址,並且您使用的是默認路由,因此默認路徑基於查詢字符串。試試這個:

$(document).ready(function() { 
     $("#Languages").change(function() { 
      var selectedValue = $(this).find('option:selected').val(); 
       window.location.href = "/Survey/SelectLanguage/@Model.CampaignGuid?languageName=" + selectedValue; 
     }); 
    }); 

通過以下asp.net的MVC的默認路由,您可以通過在URL命名id的參數作爲它的一部分,那麼你可以使用CampingGuid爲ID,並且languageName您可以使用查詢串。

+0

languageName是第一個參數。 – Bigeyes

+0

正如我所說的,'id'是默認路由透視圖中URL的一部分。你測試過了嗎?什麼是您收到的錯誤信息? –

相關問題