2013-08-17 3 views
0

У меня есть mutliple hidden Input полей в таблице. Каждая строка имеет три формы, и каждая форма имеет скрытое поле с тем же name. Но когда я нажимаю одну из кнопок, используется только имя пользователя последнего отображаемого скрытого поля. Почему это так и как я могу его изменить?Несколько скрытых полей в таблице с тем же именем бритва

Вот бритва разметка

<table class="table table-condensed"> 
    <thead> 
     <tr> 
      <th>#</th> 
      <th>Benutzername</th> 
      <th>Aktiviert</th> 
      <th>S0Pin Ansicht</th> 
      <th>Einstellungen</th> 
      <th>Aktionen</th> 
     </tr> 
    </thead> 
    <tbody> 
     @if (Model != null && Model.Count > 0) { 
      foreach (var item in Model) { 
      <tr> 
       <td>@item.ID</td> 
       <td>@item.Username</td> 
       @if (item.Activated) { 
        <td><i id="[email protected]" class="icon-ok" /></td> 
       } else { 
        <td><i id="[email protected]" class="icon-remove" /></td> 
       } 
       @if (item.S0PinAllowed) { 
        <td><i id="[email protected]" class="icon-ok" /></td> 
       } else { 
        <td><i id="[email protected]" class="icon-remove" /></td> 
       } 
       @if (item.SettingsAllowed) { 
        <td><i id="[email protected]" class="icon-ok" /></td> 
       } else { 
        <td><i id="[email protected]" class="icon-remove" /></td> 
       } 
       <td> 
        @if (item.Username == User.Identity.Name) { 
         <span>Keine Aktionen verfügbar</span> 
        } else { 
         using (Ajax.BeginForm(item.Activated ? "DeactivateUser" : "ActivateUser", "Settings", new AjaxOptions() { 
          HttpMethod = "POST", 
          UpdateTargetId = "usertable" 
         }, new { 
          id = "formlogin_" + item.ID, 
         })) { 
          var user = item as Token.Creator.Site.Models.User; 
         @Html.Hidden("first", Model.First) 
         @Html.Hidden("count", Model.Fetch) 
         @Html.Hidden("username", user.Username, new { id = "username_login_" + user.ID }) 
          if (item.Activated) { 
         <input class="btn btn-danger btn-small pull-left" type="submit" id="[email protected]" value="Deaktivieren" /> 
          } else { 
         <input class="btn btn-success btn-small pull-left" type="submit" id="[email protected]" value="Aktivieren" /> 
          } 
         } 
         using (Ajax.BeginForm(item.S0PinAllowed ? "DeactivateSupportUser" : "ActivateSupportUser", "Settings", new AjaxOptions() { 
          HttpMethod = "POST", 
          UpdateTargetId = "usertable" 
         }, new { 
          id = "formsupport_" + item.ID 
         })) { 
          var user = item as Token.Creator.Site.Models.User; 
         @Html.Hidden("first", Model.First) 
         @Html.Hidden("count", Model.Fetch) 
         @Html.Hidden("username", user.Username, new { id = "username_support_" + user.ID }) 
          if (item.S0PinAllowed) { 
         <input class="btn btn-danger btn-small pull-left" type="submit" id="[email protected]" value="Support verweigern" /> 
          } else { 
         <input class="btn btn-success btn-small pull-left" type="submit" id="[email protected]" value="Support erlauben" /> 
          } 
         } 
         using (Ajax.BeginForm(item.SettingsAllowed ? "DeactivateSettingsUser" : "ActivateSettingsUser", "Settings", new AjaxOptions() { 
          HttpMethod = "POST", 
          UpdateTargetId = "usertable" 
         }, new { 
          id = "formsettings_" + item.ID 
         })) { 
          var user = item as Token.Creator.Site.Models.User; 
         @Html.Hidden("first", Model.First) 
         @Html.Hidden("count", Model.Fetch) 
         @Html.Hidden("username", user.Username, new { id = "username_settings_" + user.ID }) 
          if (item.SettingsAllowed) { 
         <input class="btn btn-danger btn-small pull-left" type="submit" id="[email protected]" value="Einstellungen verweigern" /> 
          } else { 
         <input class="btn btn-success btn-small pull-left" type="submit" id="[email protected]" value="Einstellungen erlauben" /> 
          } 
         } 
        } 
       </td> 
      </tr> 
      } 
     } else { 
      <tr class="alert alert-info"> 
       <td colspan="6">Leider sind keine Daten verfügbar :(</td> 
      </tr> 
     } 
    </tbody> 
</table> 

Здесь тонированные разметки

<table class="table table-condensed"> 
    <thead> 
     <tr> 
      <th>#</th> 
      <th>Benutzername</th> 
      <th>Aktiviert</th> 
      <th>S0Pin Ansicht</th> 
      <th>Einstellungen</th> 
      <th>Aktionen</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td>1</td> 
      <td>KIRK-NOTEBOOK\Kirk</td> 
      <td><i class="icon-ok" id="active_1"></i></td> 
      <td><i class="icon-ok" id="support_1"></i></td> 
      <td><i class="icon-ok" id="settings_1"></i></td> 
      <td> 
       <span>Keine Aktionen verfügbar</span> 
      </td> 
     </tr> 
     <tr> 
      <td>19</td> 
      <td>KIRK-NOTEBOOK\Heather</td> 
      <td><i class="icon-ok" id="active_19"></i></td> 
      <td><i class="icon-ok" id="support_19"></i></td> 
      <td><i class="icon-ok" id="settings_19"></i></td> 
      <td> 
       <form id="formlogin_19" action="/Site/Settings/DeactivateUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="first" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="count" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_login_19" type="hidden" value="KIRK-NOTEBOOK\Heather"> 
        <input class="btn btn-danger btn-small pull-left" id="sublogin_19" type="submit" value="Deaktivieren"> 
       </form> 
       <form id="formsupport_19" action="/Site/Settings/DeactivateSupportUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden1" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden2" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_support_19" type="hidden" value="KIRK-NOTEBOOK\Heather"> 
        <input class="btn btn-danger btn-small pull-left" id="subsupport_19" type="submit" value="Support verweigern"> 
       </form> 
       <form id="formsettings_19" action="/Site/Settings/DeactivateSettingsUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden3" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden4" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_settings_19" type="hidden" value="KIRK-NOTEBOOK\Heather"> 
        <input class="btn btn-danger btn-small pull-left" id="subsettings_19" type="submit" value="Einstellungen verweigern"> 
       </form> 
      </td> 
     </tr> 
     <tr> 
      <td>20</td> 
      <td>KIRK-NOTEBOOK\Reemt</td> 
      <td><i class="icon-ok" id="active_20"></i></td> 
      <td><i class="icon-ok" id="support_20"></i></td> 
      <td><i class="icon-ok" id="settings_20"></i></td> 
      <td> 
       <form id="formlogin_20" action="/Site/Settings/DeactivateUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden5" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden6" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_login_20" type="hidden" value="KIRK-NOTEBOOK\Reemt"> 
        <input class="btn btn-danger btn-small pull-left" id="sublogin_20" type="submit" value="Deaktivieren"> 
       </form> 
       <form id="formsupport_20" action="/Site/Settings/DeactivateSupportUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden7" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden8" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_support_20" type="hidden" value="KIRK-NOTEBOOK\Reemt"> 
        <input class="btn btn-danger btn-small pull-left" id="subsupport_20" type="submit" value="Support verweigern"> 
       </form> 
       <form id="formsettings_20" action="/Site/Settings/DeactivateSettingsUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden9" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden10" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_settings_20" type="hidden" value="KIRK-NOTEBOOK\Reemt"> 
        <input class="btn btn-danger btn-small pull-left" id="subsettings_20" type="submit" value="Einstellungen verweigern"> 
       </form> 
      </td> 
     </tr> 
     <tr> 
      <td>21</td> 
      <td>Theo</td> 
      <td><i class="icon-ok" id="active_21"></i></td> 
      <td><i class="icon-ok" id="support_21"></i></td> 
      <td><i class="icon-ok" id="settings_21"></i></td> 
      <td> 
       <form id="formlogin_21" action="/Site/Settings/DeactivateUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden11" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden12" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_login_21" type="hidden" value="Theo"> 
        <input class="btn btn-danger btn-small pull-left" id="sublogin_21" type="submit" value="Deaktivieren"> 
       </form> 
       <form id="formsupport_21" action="/Site/Settings/DeactivateSupportUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden13" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden14" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_support_21" type="hidden" value="Theo"> 
        <input class="btn btn-danger btn-small pull-left" id="subsupport_21" type="submit" value="Support verweigern"> 
       </form> 
       <form id="formsettings_21" action="/Site/Settings/DeactivateSettingsUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden15" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden16" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_settings_21" type="hidden" value="Theo"> 
        <input class="btn btn-danger btn-small pull-left" id="subsettings_21" type="submit" value="Einstellungen verweigern"> 
       </form> 
      </td> 
     </tr> 
     <tr> 
      <td>22</td> 
      <td>KIRK-NOTEBOOK\Theo</td> 
      <td><i class="icon-ok" id="active_22"></i></td> 
      <td><i class="icon-remove" id="support_22"></i></td> 
      <td><i class="icon-ok" id="settings_22"></i></td> 
      <td> 
       <form id="formlogin_22" action="/Site/Settings/DeactivateUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden17" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden18" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_login_22" type="hidden" value="KIRK-NOTEBOOK\Theo"> 
        <input class="btn btn-danger btn-small pull-left" id="sublogin_22" type="submit" value="Deaktivieren"> 
       </form> 
       <form id="formsupport_22" action="/Site/Settings/ActivateSupportUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden19" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden20" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_support_22" type="hidden" value="KIRK-NOTEBOOK\Theo"> 
        <input class="btn btn-success btn-small pull-left" id="subsupport_22" type="submit" value="Support erlauben"> 
       </form> 
       <form id="formsettings_22" action="/Site/Settings/DeactivateSettingsUser?Length=8" method="post" novalidate="novalidate" data-ajax-update="#usertable" data-ajax-mode="replace" data-ajax-method="POST" data-ajax="true"> 
        <input name="first" id="Hidden21" type="hidden" value="0" data-val-required='Das Feld "First" ist erforderlich.' data-val-number='Das Feld "First" muss eine Zahl sein.' data-val="true"><input name="count" id="Hidden22" type="hidden" value="50" data-val-required='Das Feld "Count" ist erforderlich.' data-val-number='Das Feld "Count" muss eine Zahl sein.' data-val="true"><input name="username" id="username_settings_22" type="hidden" value="KIRK-NOTEBOOK\Theo"> 
        <input class="btn btn-danger btn-small pull-left" id="subsettings_22" type="submit" value="Einstellungen verweigern"> 
       </form> 
      </td> 
     </tr> 
    </tbody> 
</table> 

ответ

1

Если кто-нибудь имеет эту проблему, просто используйте routeValues свойство, добавьте свойство, которое вы бы добавить в скрытом поле как имущество в routeValues см. здесь:

<table class="table table-condensed"> 
    <thead> 
     <tr> 
      <th>#</th> 
      <th>Benutzername</th> 
      <th>Aktiviert</th> 
      <th>S0Pin Ansicht</th> 
      <th>Einstellungen</th> 
      <th>Aktionen</th> 
     </tr> 
    </thead> 
    <tbody> 
     @if (Model != null && Model.Count > 0) { 
      foreach (var item in Model) { 
      <tr> 
       <td>@item.ID</td> 
       <td>@item.Username</td> 
       @if (item.Activated) { 
        <td><i id="[email protected]" class="icon-ok" /></td> 
       } else { 
        <td><i id="[email protected]" class="icon-remove" /></td> 
       } 
       @if (item.S0PinAllowed) { 
        <td><i id="[email protected]" class="icon-ok" /></td> 
       } else { 
        <td><i id="[email protected]" class="icon-remove" /></td> 
       } 
       @if (item.SettingsAllowed) { 
        <td><i id="[email protected]" class="icon-ok" /></td> 
       } else { 
        <td><i id="[email protected]" class="icon-remove" /></td> 
       } 
       <td> 
        @if (item.Username == User.Identity.Name) { 
         <span>Keine Aktionen verfügbar</span> 
        } else { 
         using (Ajax.BeginForm(item.Activated ? "DeactivateUser" : "ActivateUser", "Settings", new { username = item.Username }, new AjaxOptions() { 
          HttpMethod = "POST", 
          UpdateTargetId = "usertable" 
         }, new { 
          id = "formlogin_" + item.ID, 
         })) { 
          var user = item as Token.Creator.Site.Models.User; 
         @Html.Hidden("first", Model.First) 
         @Html.Hidden("count", Model.Fetch) 
          if (item.Activated) { 
         <input class="btn btn-danger btn-small pull-left" type="submit" id="[email protected]" value="Deaktivieren" /> 
          } else { 
         <input class="btn btn-success btn-small pull-left" type="submit" id="[email protected]" value="Aktivieren" /> 
          } 
         } 
         using (Ajax.BeginForm(item.S0PinAllowed ? "DeactivateSupportUser" : "ActivateSupportUser", "Settings", new { username = item.Username }, new AjaxOptions() { 
          HttpMethod = "POST", 
          UpdateTargetId = "usertable" 
         }, new { 
          id = "formsupport_" + item.ID 
         })) { 
          var user = item as Token.Creator.Site.Models.User; 
         @Html.Hidden("first", Model.First) 
         @Html.Hidden("count", Model.Fetch) 
          if (item.S0PinAllowed) { 
         <input class="btn btn-danger btn-small pull-left" type="submit" id="[email protected]" value="Support verweigern" /> 
          } else { 
         <input class="btn btn-success btn-small pull-left" type="submit" id="[email protected]" value="Support erlauben" /> 
          } 
         } 
         using (Ajax.BeginForm(item.SettingsAllowed ? "DeactivateSettingsUser" : "ActivateSettingsUser", "Settings", new { username = item.Username }, new AjaxOptions() { 
          HttpMethod = "POST", 
          UpdateTargetId = "usertable" 
         }, new { 
          id = "formsettings_" + item.ID 
         })) { 
          var user = item as Token.Creator.Site.Models.User; 
         @Html.Hidden("first", Model.First) 
         @Html.Hidden("count", Model.Fetch) 
          if (item.SettingsAllowed) { 
         <input class="btn btn-danger btn-small pull-left" type="submit" id="[email protected]" value="Einstellungen verweigern" /> 
          } else { 
         <input class="btn btn-success btn-small pull-left" type="submit" id="[email protected]" value="Einstellungen erlauben" /> 
          } 
         } 
        } 
       </td> 
      </tr> 
      } 
     } else { 
      <tr class="alert alert-info"> 
       <td colspan="6">Leider sind keine Daten verfügbar :(</td> 
      </tr> 
     } 
    </tbody> 
</table> 

Это сработало.

+0

Ответ на ваш собственный вопрос - все хорошо и хорошо, но это похоже на короткий ответ ... Возможно, вы должны сказать, что именно вы сделали с routeValues ​​... – Chris

+0

Я отредактировал ответ, спасибо :) – Knerd

+0

Гораздо лучше , +1. :) – Chris