У меня есть продукт, который имеет ViewModel: ProductViewModelASP.NET MVC передать ViewModel различным ViewModel
private int _id;
private string _name;
private string _type;
private int _selectedID;
public ProductViewModel(int id, string name, string type)
{
_ id = id;
_ name = name;
_ type = type;
}
public int ProductID
{
get { return _id; }
set { _id = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public string Type
{
get { return _type; }
set { _type = value; }
}
public int Selected
{
get { return _selected; }
set { _selected = value; }
}
И для показа списка продуктов у меня есть еще один ViewModel: ProductListViewModel
private PagedResult<ProductViewModel> _pagedResult;
private string _sortColumn = "Id";
private string _sortOrder = "ASC";
public LostAssetsListViewModel(PagedResult<ProductViewModel> products)
{
_pagedResult = products;
}
public PagedResult<ProductViewModel> List
{
get { return _pagedResult; }
set { _pagedResult = value; }
}
public string SortColumn
{
get { return _sortColumn; }
set { _sortColumn = value; }
}
public string SortOrder
{
get { return _sortOrder; }
set { _sortOrder = value; }
}
И в моем представлении я использую продукт LisViewModel для отображения списка продуктов. И в каждом продукте, я хочу, чтобы добавить кнопку радио (чтобы выбрать этот продукт)
<% = Html.RadioButtonFor(m => m.List[i].Selected, "false", Model.List[i]. ProductID)%>
Для получения всех данных в моем контроллере я создал ProductInputModel:
ProductInputModel
private int _id;
private string _name;
private string _type;
private int _selectedID;
public ProductInputModel(int id, string name, string type)
{
_ id = id;
_ name = name;
_ type = type;
}
public int ProductID
{
get { return _id; }
set { _id = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public string Type
{
get { return _type; }
set { _type = value; }
}
public int Selected
{
get { return _selected; }
set { _selected = value; }
}
В моем контроллере вход пуст: [HttpPost] public ActionResult Details (ProductInputModel input) {}
Я не могу понять whydata из ProductViewModel не переходит к ProductInputModel. Как получить выбранный продукт через ViewModels?
Я создал пустой конструктор для моего ProductInputModel (public ProductInputModel() {}), и он не сработал (я получаю ошибку. Нет конструктора без параметров для этого объекта.). Затем я также сделал безпараметрический конструктор для ProductViewModel и ProductListViewModel, и все равно получаю ту же ошибку. Любые другие советы? – intentarr
Каждая модель просмотра, которую вы используете в иерархии объектов модели представления, которую действие контроллера принимает как аргумент, должно иметь конструкторы без параметров. Поэтому, если вы получаете эту ошибку, скорее всего, вы забыли какой-то тип. –