Привязка элемента модели в списке - PullRequest
0 голосов
/ 15 января 2019

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

@model SRINews.Domain.NewsTotal

@using (Html.BeginForm("UpdateNewsItem", "Home", FormMethod.Post))
{
    <table class="table table-borderless table-cart" id="mytable" data-addclass-on-smdown="table-sm">
        <tbody>
            @foreach (var item in Model.items)
            {
                <tr class="newsRow" id="@item.ItemId">
                    <td class="cart-img nostretch">
                        <a href="#"><img src="@item.ImageUrl" alt=""></a>
                    </td>
                    </tr>
                    <tr>
                    <td>
                     <input type="text" class="form-control" placeholder="Personalized Name">
                     //@Html.TextboxFor(x=>x)
                     // I want to bind PersonalizedName to model
                    </td>
                    </tr>
                    <tr>
                    <td>
                     <input type="text" class="form-control" placeholder="Country">
                      // I want to bind Country to model
                    </td>
                    </tr>
                    }
                    </tbody>
                    </table>

                       <input type="submit" class="btn btn-primary" value="Personal Details" />

}

Модель

 public class Items
    {
        public int ItemId { get; set; }
        public string ItemCode { get; set; }
        public string PersonalizedName {get;set;}
        public string Country {get;set;}
    }

    public class NewsTotal
    {
        public int BaseItem { get; set; }
        public string BaseName {get;set;}
        public List<Items> items { get; } = new List<Items>();
    }

Public ActionResult UpdateNewsItem(NewsTotal nTotal)
{
return View();
}

1 Ответ

0 голосов
/ 15 января 2019

Вы хотите использовать традиционный цикл for, чтобы вы могли использовать индекс для привязки к вашему List<T> в модели, вам также нужно будет сделать items изменяемым, поэтому вам нужно иметь set за это также, иначе вы не сможете ничего подать:

//You'll need to make this mutable, so it can post the edited values
public List<Items> items { get; set; } = new List<Items>();

Тогда в вашем представлении:

@for(int i = 0; i < Model.items.Count; i++)
{
   @Html.HiddenFor(x => Model.items[i].ItemId)
   @Html.HiddenFor(x => Model.items[i].ItemCode)
   <tr class="shoppingCartRow" id="@Model.items[i].ItemId">
     <td class="cart-img nostretch">
       <a href="#"><img src="@Model.items[i].ImageUrl" alt=""></a>
     </td>
   </tr>
   <tr>
     <td>
       @Html.TextboxFor(x=> Model.items[i].PersonalizedName, new { @placeholder = "Personalized Name"})
     </td>
   </tr>
   <tr>
     <td>
       @Html.TextboxFor(x=> Model.items[i].Country, new { @placeholder = "Country"})
     </td>
   </tr>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...