У меня есть страница (User.aspx), которая отображает список пользователей, ожидающих принятия. Страница позволяет администратору принимать пользователей для организации, нажав кнопку рядом с именем пользователя. Когда администратор нажимает кнопку для любого пользователя в списке, он принимает пользователя в верхней части списка, а не выбранного пользователя. Я проверил идентификатор в наборе инструментов разработчика Chrome и передал правильный идентификатор, но когда элемент управления попадает в точку останова в Action (AcceptUser), он показывает идентификатор первого пользователя в списке. Но похоже, что что-то меняет значение ViewBag (UserId) между ними. Кто-нибудь может посоветовать мне, как исправить эту проблему.ViewBag передает измененное значение PartialView
Users.aspx
<% foreach (var user in Model.UsersAwaitingAcceptance)
{ %>
<a class="label label-SU-success" href="#accept" role="button" data-toggle="modal"><i class="icon-success icon-white"></i></a>
<% Html.RenderPartial("AcceptUserDialog", Model.Accept, new ViewDataDictionary { { "OrgId", Model.OrgId }, { "UserId", user.Id } }); %>
<% } %>
AcceptUserDialog.ascx
<div id="accept">
<% using (Html.BeginForm("AcceptUser", "Organization", new { userId = ViewBag.UserId, orgId = ViewBag.OrgId}, FormMethod.Post, new { @class = "zero-bottom form-horizontal" }))
{ %>
// UserId is different here
<%= ViewBag.UserId%>
<%= ViewData["UserId"]%>
// Above code is displaying different UserId
<% } %>
<\div>
OrganizationController
public ActionResult AcceptUser(Guid userId, Guid orgId)
{
// Logic here
}
Его для каждого цикла, что вы ожидаете получить? .. – Rex
Я ожидаю получить UserId выбранного пользователя, а не первого пользователя в списке. – user1211185
Я не вижу никаких проверок условий внутри цикла. – Rex