Я новичок в MVC, возникла проблема с созданием простого пользовательского интерфейса. Я должен отображать модель в представлении и поддерживать разбивку на страницы. В моем представлении будет отображаться каждый столбец, а под именем столбца должно быть либо текстовое поле, либо выпадающее меню для фильтрации данных.Просмотр без итерации через IEnumerable модель C#
Моя модель как ниже
public class ViewModel : ViewModelBase
{
public long Id { get; set; }
[DisplayName("Name")]
public string Name{ get; set; }
[DisplayName("Full Name")]
public string fullName{ get; set; }
[DisplayName("State")]
public string adressState{ get; set; }
[DisplayName("Grade")]
public string grade{ get; set; }
public MultiSelectList grades{ get; set; }
public MultiSelectList adressState{ get; set; }
}
Я передаю IEnumerable модель для просмотра и моя точка зрения должна быть ниже
<div class="dataTable">
<table id="mainTable">
<thead>
<tr >
<th ></th>
@Html.HiddenFor(model => model.Id)
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.fullName)
</th>
<th>
@Html.DisplayNameFor(model => model.address)
</th>
<th>
@Html.DisplayNameFor(model => model.grade)
</th>
</tr>
<tr >
<th>
<img src="~/Images/someimage.png" alt="Options" height="25" width="25" />
</th>
@Html.HiddenFor(model => model.Id)
<th>
@Html.TextBoxFor(model => model.name, new { onkeyup = "handleKeyPress(event, this)", placeholder = "Search", @class = "TextBox searchProperties" })
</th>
<th>
@Html.TextBoxFor(model => model.fullName, new { onkeyup = "handleKeyPress(event, this)", placeholder = "Search", @class = "TextBox searchProperties"})
</th>
<th>
@Html.ListBoxFor(model => model.adressState, Model.adressStateItemList as MultiSelectList, new { onchange = "handleDropdownChange()", @id = "adressStateDropDown",
@class = "searchProperties" })
</th>
<th>
@Html.ListBoxFor(model => model.gradeItem, Model.gradeItemList as MultiSelectList, new { onchange = "handleDropdownChange()", @id = "gradeDropDown",
@class = "searchProperties" })
</th>
</tr>
</thead>
<tbody id="tableResults">
@{Html.RenderPartial("_StudentPartial", Model);}
</tbody>
</table>
студент частичного должен иметь для каждого цикла, чтобы через данные модели и отображение. Я не могу привязать свою модель к просмотру и отображению данных, так как мой основной вид предполагает, что модель для отображения текстового поля для свойства и частичного представления ожидает IEnumerable модели. Я пробовал @ Html.Partial ("_ studentPartial", новый IEnumerable < .solution.ViewModel>) , но не работает. Может ли кто-нибудь предложить решение?
Если представление показывается имеет модель * одного экземпляра * чего-то, как вы ожидаете, чтобы вывести * * список чего-то? Вы можете превратить корзину яблок в отдельные яблоки, но вы не можете превратить отдельное яблоко в корзину яблок. Кроме того, вы не можете создать «новый» экземпляр * интерфейса *, только * класс *. – David
Отображаемое представление подразумевает, что модель представляет собой единый экземпляр, а не коллекцию. И если модель была коллекцией, зачем вам ее конвертировать в коллекцию во внутреннем виде? Это не имеет никакого смысла. – David
Если модель представляет собой коллекцию, то как вообще работает какой-либо из HTML-помощников в этом представлении? Также появляются ссылки на свойства, которые даже не на модель вообще, а также модель, как представляется, имеет несколько свойств с тем же именем. Этот код даже не может компилироваться по нескольким причинам. Возможно, вы захотите выполнить резервное копирование и вернуться к некоторым учебникам MVC. – David