2013-02-24 91 views
0

我已經使用HTML助手標籤創建鏈接。根據下面給出的代碼,當用戶點擊鏈接時,該頁面將導航到稱爲Hello的另一個視圖。使用HTML助手標籤創建鏈接

 @Html.ActionLink("Hello", "Hello", new { id=item.pk }) 

但是,我想要做的是調用JS方法,並在同一頁面打開一個div。我怎樣才能做到這一點 ? 例如:顯示和隱藏一些控件,當用戶點擊編輯

@foreach (var item in Model.exampleAll) 
{ 

@Html.ActionLink("Hello", "Hello", new { id=item.pk }) 
} 
+0

因爲你不需要指定一個動作。只是一個沒有href和JS事件處理程序的錨點 – 2013-02-24 19:55:31

+0

但是,我也需要掌握'id = item.pk'。我應該怎麼做? – user1315906 2013-02-24 19:56:19

回答

1

,因爲這聽起來是如此的平凡,我會使用一個HTML錨

<a href='' id='@(item.pk)' class='itemsList'> click me </a> 

,然後jQuery的事件處理程序

$('.itemsList').click(function(){ 
     var currentId = this.id; // get id of object that was clicked 
     // populate or make visible your div here 
}); 

它不覺得像'MVC WAY',但你什麼都不需要。

重要注意事項:如果您不想使用錨/鏈接進行任何導航,則使用Html.ActionLink似乎矯枉過正。

+0

你能建議我抓住記錄的主鍵並將其傳遞給函數的最佳方法嗎?請解釋一下 – user1315906 2013-02-24 20:07:39

+0

@ user1315906。 item.pk尚未填充?如果不是,你的數據來源是什麼? EF? – 2013-02-24 20:09:09

+0

Item.Pk是主鍵和它的填充。我只想知道如何將它傳遞給Jquery函數? – user1315906 2013-02-24 20:10:41

2

更改ActionLink的是:

@Html.ActionLink("Hello", "Hello","YourController", new { onclick = "yourFunction();"}) 

甚至更​​好添加一個js函數截取你的鏈接的點擊,這裏是用jQuery:

@Html.ActionLink("Hello", "Hello","YourController", new { id= "someLink"}) 

$('#someLink').click(function() { alert('hello'); }); 

編輯:如果你需要一個功能應用到多個元素使用的CSS類的選擇,變更該ActionLink的:

@Html.ActionLink("Hello", "Hello","YourController", new { id= item.pk, @class = "classname"}) 

$('.classname').click(function() { alert(this.id); }); 
+0

'ActionLink'中的'someclick'是主鍵。所以我需要抓住這個值,並將其傳遞給函數。我怎麼能根據你的第二種方法做到這一點? – user1315906 2013-02-24 20:06:32

+0

@ user1315906我編輯了答案 – 2013-02-24 20:21:22

+0

我更喜歡你的JQ。比我的簡單得多。但是這個例子會讓實際的href呈現錯誤嗎? – 2013-02-24 20:42:18