Я пытаюсь передать данные из моей модели представления через контроллер в раскрывающийся список, а не с помощью 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
ошибку.