Как я могу перебирать элементы в форме Asp.net MVC3 - PullRequest
3 голосов
/ 03 ноября 2011

У меня проблема в приложении Я использую MVC 3 с бритвой, и я хочу получить значение флажка в форме

@using (Html.BeginForm("ConfirmItemAvilabilty", "Order", FormMethod.Post, new { id = "frmConfirmAvilabilty", name = "frmConfirmAvilability" }))
{
    foreach (OrderItem orderItem in orderAction.Order.OrderItems)
    {
    <div class="product">
        <ul>
            <li>
                <div class="productImg">
                    <img src="@orderItem.Product.Image" width="100px" height="100px"/>
                </div>
                <div class="centered">
                    <a href="@orderItem.Product.Link" target="_blank">Link</a> <span>@orderItem.Product.TitleAr</span>
                    <span>@orderItem.Product.Price</span>
                </div>
                @if (currentUser.UserTypeEnum == UserTypeEnum.Reseller)
                {
                    <div>
                        @Html.CheckBox("ChkConfirm", orderItem.IsAvailable, new { id="chkConfirm" ,@class="chkConfirm"})
                        @Html.Hidden("OrderItemId", orderItem.Id, new { id="hdnConfirm"})
                    </div>
                }
            </li>
        </ul>
    </div>
    }
    if (currentUser.UserTypeEnum == UserTypeEnum.Reseller)
    { 
        <button>Confirm</button>
    }
}

Просто я хочу получить значение всех отмеченных флажков. Я пытался создать модель, содержащую значение моего флажка и значение скрытого текста под ним

public class ItemOrderModel
{
    public string ChkConfirm { get; set; }
    public string OrderItemId { get; set; }
}

и в моем контроллере я делаю следующее, но ничего не произошло

   public ActionResult ConfirmItemAvilabilty(List<ItemOrderModel> OrderItems)
    {

        return View();
    }

но orderItems всегда возвращает ноль, может кто-нибудь помочь мне в этом?

----------------- Редактировать ------------------ Спасибо Сэм и Джесси

Я нашел решение для своей проблемы, но теперь сталкиваюсь с другой проблемой. Прежде всего, я решил свою проблему, изменив вид модели так, чтобы это было

public class ItemOrderModel
{
    public List<bool> ChkConfirms { get; set; }
    public List<string> OrderItemId { get; set; }
}

и измените имя флажка на

  @Html.CheckBox("ChkConfirms", orderItem.IsAvailable, new { id = "chkConfirm", @class = "chkConfirm" })

проблема сейчас когда я отправляю, я нашел два значения false, которые являются фактическим представлением моих флажков, и два идентификатора, которые также являются фактическим представлением моих скрытых полей «Правильный сценарий» Когда я отмечаю один из флажков в той же форме, я нашел 3 результата для флажка и 2 результата для скрытого поля. Может ли кто-нибудь помочь в этом или есть решение

1 Ответ

6 голосов
/ 03 ноября 2011

Вам нужно заглянуть в Editor Templates:

Как создавать собственные шаблоны редактора / отображения в ASP.NET MVC 3?

Это позволяет вам делать именно то, о чем вы говорите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...