2014-11-17 70 views
1

我很感激任何幫助。用jQuery更改鏈接的路由值

我試圖改變每次用劍道電網change()事件鏈接href

function ContractsGrid_onChange(e) { 
    var selected = this.select()[0], 
     item = this.dataItem(selected);  

    $('#createOnBase').attr('href', function() { 

     var createLink = document.getElementById("createOnBase"); 
     var route = 'http://' + createLink.hostname + createLink.pathname + "?contractID =" + item.ID; 

     return route; 

    }); 
    } 

@Ajax.ActionLink("Create", "CreateOnBase", 
        new { contractID = "_contractID_" }, 
        new AjaxOptions() {... }, 
        new { id="createOnBase" }) 

我不知道目前的做法,因爲我有不同的主機名(localhost通過端口或服務器域)

最好的辦法是:

var route = "@Url.Action('CreateOnBase', new { contractID = ??})"; 

但我不能在剃刀用JS變量(item.ID)。

此外,this.href.replace("_contractID_", item.ID)將不適用於幾個更改。

你能幫我解決另一個問題嗎?

非常感謝!

+0

'createOnBase'元素用於什麼?是一些獨特的元素? – Ivan

+0

@Ivan它是行動鏈接。 –

回答

1

葉,這很簡單,我找到了一種方法:

$('#createOnBase').attr('href', function() { 

     return "@Url.Action("CreateOnBase")"+ "/?contractID=" +item.ID; 

    }); 

也許這將是對別人有幫助的。

1

是到了我的腦海中首先想到的是存儲根網址在單獨variable.Something這樣的:

function ContractsGrid_onChange(e) { 
    var selected = this.select()[0], 
     item = this.dataItem(selected);  
    var rootUrl = @Url.Action("Create", "CreateOnBase");  
    $('#createOnBase').attr('href', function() { 

     var createLink = document.getElementById("createOnBase"); 
     var route = rootUrl + "?contractID =" + item.ID; 

     return route; 

    }); 
    } 

這僅僅是一個解決辦法,不知道一些先進的方法...