2014-01-22 3 views
0

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

<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() 
     }, 

ответ

0

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

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

Смежные вопросы