2010-01-08 29 views
1

我將一些模型信息傳遞給一個ActionLink,但我也想給頁面上的一些輸入的值提供動作。舉例來說,如果我有這樣的事情:MVC2:如何讀取操作鏈接的控制值?

<input Name="MyInput" /> 

<%: Html.ActionLink("MyAction", "MyController", Model.Value); 

我想動作要知道這兩個Model.Value(這是通過參數傳遞),而MyInput的價值。通常我會使用FormCollection,但是我不能在這個例子中,因爲我沒有提交。

那麼如何將MyInput的值傳遞給MyAction?我是否必須將名爲MyInput的屬性添加到我的模型中?假設這會起作用,是否有更簡單的方法,或者至少有一個不涉及修改模型?

+1

你所做的任何事情都會變得遲鈍。我會說要麼回發帖子,要麼爲此視圖創建一個ViewModel。這不是一個糟糕的路要走。 – 2010-01-08 21:28:41

+0

會做什麼回帖涉及? – 2010-01-08 21:31:18

回答

3

在HTML中沒有辦法做到這一點,因此在ASP.NET MVC中沒有辦法做到這一點。

有這兩個可能的解決方案,你可以選擇:

  1. 使用JavaScript這樣,當用戶編輯文本框,你動態地改變錨標記的價值,包括他們在鍵入。您不能使用ASP.NET路由,因爲它在服務器上運行,並且您需要客戶端代碼。

  2. 做一個表單提交而不是鏈接。這是HTML中的推薦方式。當用戶提交數據時,它應該是一種形式。將所有內容都包裹在表單標籤中,並將文本框和按鈕放置在那裏。將表單的操作設置爲您希望發佈到的URL。

這是因爲我把this question,雖然其他問題的提問者可能有一個稍微不同的想法同樣的反應。

1

我確定我可能已經通過Javascript(我可能會使用JQuery)讀取文本框的值,並將它們作爲參數作爲匿名類型的一部分傳遞(而不是僅使用Model.Value)。但是,我決定從使用操作鏈接切換到僅執行表單提交併使用FormCollection。它對我正在構建的頁面更有意義。

相關問題