У меня есть немного боли, пытаясь решить, как я могу создать новый объект, когда я перехожу к моему представлению 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()
},
Вы должны передать View Model, которая будет содержать как коллекцию IEnumerable + объект, который вы хотите отправить (с свойствами Title, Description и Category).
Если вы не можете изменить модель, которую вы передаете в представление, вы не должны использовать Html.EditorFor, а просто Html.Editor (то же самое относится к Html.LabelFor и другим расширениям Html, которые вы там используете). Конечно, вам необходимо передать соответствующий параметр имени (например, "itemTitle") на эти расширения, которые будут соответствовать тем, которые используются в JS-коде.