2014-01-31 59 views
0

我在我的視圖中有一個腳手架列表類型表。在桌子上方,我也有兩個複選框。當我點擊Edit鏈接時,我需要通過所選的Id以及CheckBoxes'值。在MVC中通過ActionLink或Submit按鈕傳遞多個值

我可以用ActionLink通過像

@Html.ActionLink("Action","Controller", new { [email protected] }) 

主鍵值我可以通過包裹他們入Html.Beginform像得到CheckBoxes價值,

@using(Html.BeginForm("Action","Controller",FormMethod="Post"){ 
<input type="checkbox" name="Check" value="1" /> 
<input type="checkbox" name="Check" value="2" /> 

-- table 

<input type="Submit" value="Edit"/> 

,並在我的控制,我可以處理這個像

[HttpPost] 
Public ActionResult Edit(IEnumerable<string> check) 
{ } 

在這裏,我需要同時獲得Primary key value以及Checkboxes' value,我嘗試了這兩種方式,而且我只能得到其中任何一種。任何人都可以幫助我獲得這兩個值嗎?提前致謝。

回答

1

您可以在操作參數中包含id。像

[HttpPost] 
Public ActionResult Edit(IEnumerable<string> check, int id) 
{ } 

另外,您將需要使用提交按鈕而不是操作鏈接發佈表單。 因此,要發送身份證,您需要將其置於隱藏字段中,並且會自動在發佈後發送。

請確保您將隱藏字段命名爲與參數名稱相同,即「id」。

編輯 這樣做: 取一個隱藏字段形式:是這樣的:

<input type="hidden" id="hf" value="TEst" name="hid" /> 

然後把每行中的編輯按鈕,使調用javascript函數。如下所示:

<button type="button" onclick="clickfunc(@item.UniqueId)">Edit</button> 

Next進入Javascript並設置隱藏字段,然後執行表單提交。如下所示:

@section scripts{ 
    <script type="text/javascript"> 
    function clickfunc(id) { 
     $("#hf").val(id); 
     $('form').submit(); 
    } 
    </script> 
} 

現在,您將獲得控制器操作中的值。在我的例子,它看起來像:

public ActionResult EditTry(string hid) 
     { 
      return View(); 
     } 
+0

謝謝,好主意。有沒有其他方法可以實現這一點? – shanish

+0

可能您可以使用JavaScript來獲取複選框和ID的值,然後手動點擊該操作。 –

+0

我在「編輯」按鈕旁邊放置了一個隱藏字段,它在所有地方給我相同的「Id(第一行的值)」。 – shanish

1

您將得到選擇的值「檢查」串

要獲得提交按鈕,單擊名稱類型的jQuery並將其存儲在隱藏字段,並從訪問隱藏字段形式收集

 var getval = $("#Check option:selected").text(); 
      $("#hdnText").val(getval); 

這是控制器代碼:

[HttpPost] 
     Public ActionResult Edit(string check, FormCollection collection) 
      { 
      string strText = collection["hdnText"].ToString(); 
      string strValue = check; 
      } 
+0

我怎樣才能得到'Id(row)'值? – shanish