Я только новичок, и у меня есть проблема с моим DropDownList: (MVC, ASP.NET)
Сценарий:
В представлении, когда выбран раскрывающийся списокон отображает значение (Имя категории) В контроллере вместо (имя категории) он распознает только присвоенный идентификатор для конкретного значения
Проблема:
, когда этонажмите кнопку Сохранить, возвращаемое значение из выпадающего списка равно NULL, затем в таблице CATEGORY создайте еще одну строку с пустым содержимым. Модель: (Поставщик)
public class Supplier
{
public int Id { get; set; }
public string SupplierCode { get; set; }
public string SupplierName { get; set; }
public int SupplierContact { get; set; }
public Category Category { get; set; }
}
Модель: (Категория)
public class Category
{
public int Id { get; set; }
public string CatName { get; set; }
}
Контроллер (Поставщик)
public ActionResult New()
{
var CategoryMenu = _SBC.Categorys.ToList();
var NewContent = new SupplierandCategoryViewModel()
{
CategoryModel = CategoryMenu,
};
return View(NewContent);
}
public ActionResult Save(SupplierandCategoryViewModel Supply)
{
var DSupply = new Supplier()
{
SupplierName = Supply.SupplierModel.SupplierName,
SupplierCode = Supply.SupplierModel.SupplierCode,
SupplierContact = Supply.SupplierModel.SupplierContact,
Category = Supply.CategoryModel //this part is error; it cannot
recognize
};
_SBC.Suppliers.Add(DSupply);
_SBC.SaveChanges();
return View();
}
Просмотр: (Поставщик)
@model ShoeInformation.ViewModel.SupplierandCategoryViewModel
@{
ViewBag.Title = "New";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<br />
<br />
<h2>Create New Customer</h2>
<br />
<br />
@using (Html.BeginForm("Save", "Supplier"))
{
<div class="form-group">
@Html.LabelFor(x=>x.CategoryModel)
@Html.DropDownListFor(x => x.CategoryModel, new SelectList(Model.CategoryModel,"Id","CatName"), "Select Supplier Category", new {id="myCat",@class="form-control" })
</div>
<div class="form-group">
@Html.LabelFor(x=>x.SupplierModel.SupplierCode)
@Html.TextBoxFor(x => x.SupplierModel.SupplierCode, new { @class="form-control"})
</div>
<div class="form-group">
@Html.LabelFor(x=>x.SupplierModel.SupplierName)
@Html.TextBoxFor(x => x.SupplierModel.SupplierName, new { @class="form-control"})
</div>
<div class="form-group">
@Html.LabelFor(x=>x.SupplierModel.SupplierContact)
@Html.TextBoxFor(x => x.SupplierModel.SupplierContact, new { @class="form-control"})
</div>
}
ViewModel: (SupplierandCategoryViewModel)
public class SupplierandCategoryViewModel
{
public IEnumerable<Category> CategoryModel { get; set; }
public Supplier SupplierModel { get; set; }
}
Я хочу, чтобысохранить идентификатор категории, но в представлении (индекс) должно отображаться значение идентификатора, а не сам идентификатор
Спасибо за ваш ответ !!