Как добавить выбранный элемент в базу данных с помощью ASP.NET MVC - PullRequest
0 голосов
/ 22 апреля 2009
      <% foreach (FoodMenu f in (IEnumerable)ViewData.Model)
      { 
         %>            

        <ul >
          <li><%= Html.Encode(f.ProductId) %> </li>     
    <li><%= Html.Encode(f.Name) %></li>
    <li><%= Html.Encode(f.Price) %> </li>
     <li><%= Html.CheckBox("Selected") %></p></li>      

       </ul>

      </div> 

      <% } %>

Я хочу добавить выбранный элемент в базу данных

Ответы [ 2 ]

1 голос
/ 22 апреля 2009

Код продукта, который выбран в названии флажка.

<%= Html.CheckBox("Selected_" + f.ProductId) %>

На стороне сервера выполните итерацию по значению ValueProviderKeys, найдите варианты выбора и извлеките идентификатор продукта из выбранных.

foreach (var key in this.ValueProvider.Keys.Where( k => k.StartsWith( "Selected_" ) )
{
     // for a checkbox I think this is something like true,false if the
     // visible checkbox is checked.  There is an invisible checkbox
     // (set to false), that is checked by default so you get both when
     // the true checkbox is checked.
     bool selected = this.ValueProvider[key].AttemptedValue.Contains("true");
     int productID = int.Parse( key.Replace("Selected_",null) );

     ...store selected product id in db...
}
0 голосов
/ 22 апреля 2009

Лучший способ - использовать привязку модели для вашего списка флажков, см. Пост здесь:
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

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