2016-02-10 61 views
0

MVC應用我加入多個表,並返回它從ControllerView綁定Model.ID到複選框列表和交Model.X,Model.Y等特性控制器

| EmployeeID | ControlID | DoorAddress | DoorID | DoorName | 
------------------------------------------------------------ 
| 921  |  1  |  1  | 101 | Door 1 | 
| 921  |  1  |  2  | 102 | Door 2 | 
| 921  |  1  |  3  | 103 | Door 3 | 
| 921  |  1  |  4  | 104 | Door 4 | 
------------------------------------------------------------ 

控制器:

public ActionResult Edit(int? id) 
{ 
    // Create and execute raw SQL query. 
    string query = "SELECT a.EmployeeID, a.ControlID, a.DoorAddress, t.DoorID, t.DoorName FROM TEmpAccess AS a " + 
        "INNER JOIN TDoor AS t ON a.ControlID = t.ControlID and a.DoorAddress = t.DoorAddress where EmployeeID = " + id.ToString(); 
    IEnumerable<EmpAccessViewModel> data = db.Database.SqlQuery<EmpAccessViewModel>(query); 

    return View(data.ToList()); 
} 

DoorName值(門1,門2,門3,門4)結合到checkbox list並讓用戶進行選擇。之後,我想將所選門的相應EmployeeID,ControlID,DoorAddress,DoorID值傳遞給Controller。因爲,如果用戶選擇門1和門3的例子中,那麼我將通過以下這些值來Controller

| EmployeeID | ControlID | DoorAddress | DoorID | 
------------------------------------------------- 
| 921  |  1  |  1  | 101 | 
| 921  |  1  |  3  | 103 | 
------------------------------------------------- 

通過使用razor語法或在視圖javascript,我怎樣才能做到這一點?提前致謝。

+0

使用視圖模型,包括一個'布爾IsSelected'屬性,以便您可以將其綁定到一個複選框。參考[這個答案](http://stackoverflow.com/questions/29542107/pass-list-of-checkboxes-into-view-and-pull-out-ienumerable/29554416#29554416)爲例 –

+0

@StephenMuecke謝謝,但給出的答案沒有複選框列表。你能舉一個關於我的問題的例子(我通過使用sql查詢返回給定的列表)有複選框列表嗎? – hexadecimal

+0

當然它!研究它 - 集合中的每個項目都有一個與之關聯的複選框。提交表單時,您可以查詢返回的集合並使用'.Where(m => m.IsSelected)' –

回答

1

如果你想要在傳遞給控制器​​的視圖中表格的開始處有一個複選框,並且每行都由DoorID唯一標識,你可以嘗試這樣的事情。

在查看

<table> 
@foreach (var item in Model) 
     { 
      <tr> 
       <td><input type="checkbox" value="@item.DoorID" name="doorid" /></td> 
       <td>@item.EmployeeID</td> 
       <td>@item.ControlID</td> 
       <td>@item.DoorName</td> 
      </tr> 
     } 
</table> 

在控制器

public void ControllerName(int[] doorid) 
{ 
     foreach(var item in doorid) 

      //do something 
} 
+0

非常感謝您的回答......我設法發佈選定的ID,但我無法綁定複選框,儘管我在模型中使用了@ Stephen的isSelected屬性。任何想法? – hexadecimal

+0

另一方面,我嘗試了,但不能投票,因爲我沒有足夠的聲譽:( – hexadecimal

+0

不客氣,希望這是有益的.. – Vini

相關問題