Создание нового объекта в представлении, которое передает объект IEnumerable

0

У меня есть немного боли, пытаясь решить, как я могу создать новый объект, когда я перехожу к моему представлению IEnumerable. У меня есть создание нового элемента в модальном окне jquery-ui на той же странице,

<div class="form-group">
    @Html.LabelFor(model => model.Title)
    <div class="col-md-10">
        @Html.EditorFor( model =>model.Title)
        @Html.ValidationMessageFor(model => model.Title, "Please choose a title that is not empty or less than 3 symbols")
    </div>
</div>

Таким образом, это фрагмент кода, который я пытаюсь реализовать в главном представлении, откуда моя js получает информацию, но поскольку моя модель представляет собой коллекцию, я не могу получить доступ к параметрам редактора в моем режиме бритвы.

Это часть моего js файла, где я получаю значения элементов внутри перечисленных выше полей ввода, которые НЕ работают, потому что я работаю в коллекции. Я не могу изменить модель, поэтому мне нужен ярлык через нее.

$.ajax({
    url: "/Course/Create/",
    type: "POST",
    data:{
        Title: $("#itemTitle").val(),
        CourseDescription: $("#itemDescription").val(),
        CourseCategory: $("#itemCategory").val()
      },
Теги:
razor
asp.net-mvc

1 ответ

0
Лучший ответ

Вы должны передать View Model, которая будет содержать как коллекцию IEnumerable + объект, который вы хотите отправить (с свойствами Title, Description и Category).

Если вы не можете изменить модель, которую вы передаете в представление, вы не должны использовать Html.EditorFor, а просто Html.Editor (то же самое относится к Html.LabelFor и другим расширениям Html, которые вы там используете). Конечно, вам необходимо передать соответствующий параметр имени (например, "itemTitle") на эти расширения, которые будут соответствовать тем, которые используются в JS-коде.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню