Entity Framework MVC Kendo DropDownList - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь передать данные из моей модели представления через контроллер в раскрывающийся список, а не с помощью ViewBag или ViewData, переключателей и замаскированных текстовых полей.Я использую Entity Framework.

Проблема в том, что я не могу заставить контроллер передать свойства модели представления в представление правильно.Я видел много видео и прочитал кучу информации о том, как это сделать с ViewBag и ViewData.Я думаю, что мне нужно три отдельных метода.Read для чтения и заполнения раскрывающегося списка и замаскированных текстовых полей, Edit для их редактирования и AddNew для добавления новой записи в базу данных.

Я не уверен, как заставить это работать.Хорошо, если это просто обычное текстовое поле, а не kendoMasked или kendodropDown

У меня есть такая модель:

using System.ComponentModel.DataAnnotations;

namespace Cars.Models.CarsAppViewModels
{
    public class CarsViewModel
    {       
        [Key]
        public int? IDNumber { get; set; }
        public string CarType { get; set;  }
        public string Ford { get; set; }
        public String Chevy { get; set; }

        public List<SelectListItem> Mazdas { get; set; }
    }
}

Мой контроллер - это та часть, которая мне подходит.

namespace Cars.Controllers
{
    public class CarTypeController : Controller
    {
        private readonly CarContext _context;

        public CarTypeController(CarContext context)
        {
            _context = context;
        }

        public IActionResult Index()
        {
            ViewData["Action"] = "Index";            
            return View();
        }

        public List<CarsViewModel> GetCars()
        {
            List<CarsViewModel> list = new List<CarsViewModel>();

            list = _context.Ford.Select(c => new CarsViewModel
            {
               IDNumber = c.IDNumber.ToString(),
               Ford=c.Ford,
               Mazda=c.Mazda
            }).ToList();

            return list;
        }
    }
}

Мой взгляд:

@model Model.Cars.Models.CarsAppViewModels

 <div class="col-md-11">
    <div class="panel panel-info">
       <div class="panel-heading text-center">
                Car Types
       </div>
     <div class="panel-body">
        <div style="float:inherit; width: 100%;">
           <span>
                <label style="margin:2em;color:#0487c4;">
               make  / Model
               </label>
        @Html.Kendo().DropDownList()
           .Name("CarType").OptionLabel("Choose the Type Of Car From theList")
           .HtmlAttributes(new { style = "width: 50%" })
          </span>
        <ul>
       <li style="color:#0487c4">
       @(Html.Kendo().RadioButton().Name("Company1")
       .Checked(true)
       .HtmlAttributes(new { @name = "company" })
       .Label("Company"))
        </li>
        <li style="color:#0487c4">
        @(Html.Kendo().RadioButton()
       .Name("Person")
       .Checked(true)
       .HtmlAttributes(new { @name = "company" })
       .Label("Individual"))
       </li>
       <li>
      @(Html.Kendo()
      .MaskedTextBox()
      .Name("FirstName")
       </li>
       </ul>
      </div>
      </div>
      </div>
     </div>

Я получаю NullReference ошибку.

...