2012-07-20 60 views
-3

我想構建一個字符串參數作爲參數發送到一個AJAX調用,但我試圖建立字符串的各種方式都沒有奏效,包括簡單的連接。任何建議要做到這一點?JavaScript字符串

var partRelationType = checkBox.name; 
var partNumber = checkBox.value; 
var isChecked = checkBox.checked; 

$.ajax({ 
    url: '@Url.Action("SetSelectedPart", "Select", new { customerEstimateKey = ViewBag.CustomerEstimateKey, type = partRelationType, partNumber = partNumber, isSelected = isChecked })', 
    type: "POST", 
    async: true 
}); 
+0

WTH是「@ Url.Action」? – hugomg 2012-07-20 22:50:05

+0

其中的大多數值看起來像是不同種類的變量,並且它們需要添加如'url:'somewebadress'+ some_variabel +'morestringadress'+ a.different.variable,' – adeneo 2012-07-20 22:50:25

+0

Ajax函數應該調用服務器上的另一個頁面。如果你想傳遞參數到頁面中,你可以這樣做:'url:targetPage.html?myParameter = myValue'。 – Thoross 2012-07-20 22:54:51

回答

2

URL是使用服務器端代碼創建的,所以您不能使用客戶端變量,因爲它們還不存在。

改爲使用數據的data屬性。我不知道你的服務器代碼如何將數據放在URL中,但類似這樣的應該工作:

$.ajax({ 
    url: '@Url.Action("SetSelectedPart", "Select", new { customerEstimateKey = ViewBag.CustomerEstimateKey })', 
    data: { type: partRelationType, partNumber: partNumber, isSelected: isChecked }, 
    type: "POST", 
    async: true 
}); 
+0

偉大的信息。謝謝! – birdus 2012-07-23 13:30:54

0

的URL需要像http://www.blah.com.au/foo.aspx?type=bar&id=22just foo.aspx?type=bar&id=22

是否缺少周圍的URL.action服務器端代碼的URL?

或者某些模板解析會自動轉換爲上面需要的格式的URL嗎?

+0

有一個服務器標籤。剃刀語法僅使用@來啓動服務器代碼塊,並且不使用結束標記。 – Guffa 2012-07-20 23:13:52