2012-05-22 19 views
-1

你好我使用MVC3和我在我的網站目前通過
一個paramtere鏈接,如圖以下如何發送隱藏的參數,當我在asp.net MVC3點擊一個鏈接

<a href="/Call/@Model.id">Link To Call</a> 

爲你可以看到,我傳遞一個ID我的行動,我現在
需要通過另一個參數,但我不想改變路線
和鏈路的現狀,我可以送一些東西隱藏。
通過我的鏈接看起來相同

我試圖通過Html.ActionLink要做到這一點,但它不工作

請幫助我。在此先感謝

+0

是隱藏參數動態嗎?或者只是佔位符? – balexandre

+0

隱藏的參數是動態的 – Ahsan

+0

但我有我的模型 – Ahsan

回答

0

我會做這樣的事情,因爲你的隱藏域是動態的:

類添加到您的鏈接:

<a class="link-call" href="/Call/@Model.id">Link To Call</a> 

注意是您的href應該是這樣

href="@Url.Action("Index", "Call", { id = @Model.id })" 

然後,使用jQuery,您可以輕鬆地填充鏈接併發出請求。

$(function() { 

    $(".link-call").click(function(evt) { 

     evt.preventDefault; // don't jump to /Call/2 automatically 

     var url = $(this).attr("href") + "?"; // this will hold /Call/2? 

     // append your hidden fields 
     url += "hf1=" + $("#hf_001").val(); 
     url += "&hf2=" + $("#hf_002").val(); 
     url += "&hf3=" + $("#hf_003").val(); 

     // make the call 
     document.location.href = url; 
    }); 

}); 

控制器可能是這樣

public ActionResult Index(int id, string hf1, string hf2, string hf3) 
{ 

} 

如果你的路線已經從路由ID你可以拿起ID值,無需通過它的方法。

0

是的,你可以把它作爲查詢字符串

<a href="/Call/@Model.id?parm="+ somevalue>Link To Call</a> 
+0

的價值,因爲我之前說過,我不想改變我的鏈接,我想以另一種方式發送 – Ahsan

+1

「href」表示你創建了一個鏈接,並且如果它的鏈接在鏈接中傳遞值的唯一方法是將它傳遞給查詢字符串。 –

+0

夥計們,拜託。這不是很好的溝通方式。 –

0

鏈接觸發Http Get請求和你想要的任何數據與Get請求的查詢字符串猛一起發送。如果隱藏字段是動態的,你可以將數據追加到查詢字符串的超鏈接的點擊事件像

$('#linkId').live('click', function(){ 
    var href = $(this).attr('href'); 
    href += "?param1=" + $("#hidden1").val() + "&param2=" + $("#hidden2").val(); 
    $(this).attr('href',href); 
    return true; 
}); 

上面的代碼將隱藏字段讀值,並沿URL發送。如果你不想要這個,你要麼改變你的UI來使用表單或者做Ajax請求。

0

我不認爲你可以在沒有編輯uri的情況下做GET請求。我認爲在技術上可以在GET請求的主體中使用發佈數據,但不可取。如果您選擇編輯uri,則需要編輯操作中的參數列表以反映這些更改。

最好做到這一點,包裹在表格中並提交表格。

2

實現這一點的最簡單方法是在語義上進行=>使用HTML <form>而不是鏈接。通過這種方式,所有包含隱藏字段的輸入字段值都將自動發送,而且您不需要使用任何JavaScript來製作錨點的href。所以錨點成爲你的表單的提交按鈕。

相關問題