2016-01-18 9 views
10

पास नहीं करता है यह तालिका @device.DeviceId के साथ सही ढंग से पॉप्युलेट करती है लेकिन नियंत्रक कार्रवाई में @device.DeviceId पास नहीं करती है।एएसपी-रूट-आईडी पैरामीटर मान

<table border="1" cellpadding="10"> 
    @foreach (var device in @Model.Devices) 
    { 
     <tr> 
      <td>@device.DeviceId</td> 
      <td>@device.DeviceName</td> 
      <td> 
       <a asp-action="DeleteDevice" 
        asp-controller="Device" 
        asp-route-id="@device.DeviceId" asp-> 
        Delete 
       </a> 
      </td> 
     </tr> 
    } 
</table> 

नियंत्रक कार्रवाई हस्ताक्षर

public async Task<IActionResult> DeleteDevice(int deviceId) 

कार्रवाई कहा जाता है लेकिन है deviceId = 0.

मैं @device.DeviceId कैसे सुनिश्चित करते हैं सही ढंग से कार्रवाई करने के लिए पारित हो जाता है? ताकि asp-route-* विशेषता पैरामीटर के नाम से मेल खाता

public async Task<IActionResult> DeleteDevice(int id) 

या, a टैग बदल सकता है इसलिए की तरह:

उत्तर

13

या तो करने के लिए नियंत्रक कार्रवाई बदलने

<a asp-action="DeleteDevice" 
    asp-controller="Device" 
    asp-route-deviceId="@device.DeviceId"> 
    Delete 
</a> 
+1

धन्यवाद @Jamie Dunstan – Vague

संबंधित मुद्दे