Передача информации в контроллер

211
01 августа 2017, 19:03

Пользуюсь плагином jquery-confirm, по клику на элемент создаю вот такую форму:

$.confirm({
    //сама форма
    title: 'Add new event.',
    content: '' +
    '<form id="eventData">' +
    '<div class="form-group">' +
    '<label>Title</label>' +
    '<input type="text" placeholder="Event title.." class="name form-control" name="Title" autocomplete="off" required />' +
    '<br />' +
    '<label>Additional information</label>' +               
    '<textarea placeholder="Add some information about event" name="Additional" class="info form-control" autocomplete="off" required /> </textarea>' +
    '<br />' +
    '<label>Start date</label>' +
    '<input type="date" class="startDate form-control" name="StartDate" required />' +
    '<br />' +
    '<label>End date</label>' +
    '<input type="date" class="endDate form-control" name="EndDate" required />' +
    '</div>' + 
    '</form>',
    buttons: {
       formSubmit: {
           text: 'Save',
           btnClass: 'btn-success',
           action: function () {  
               //беру информацию из формы 
               var titleF = this.$content.find('.name').val();
               var additionalF = this.$content.find('.info').val();
               var startDateF = this.$content.find('.startDate').val();
               var endDateF = this.$content.find('.endDate').val();
               //посылаю в контроллер
               $.ajax({
                   url: 'Calendar/CreateEvent',
                   data: { title: titleF, additional: additionalF, startDate: startDateF, endDate: endDateF},
                   dataType: "JSON",
                   success: function (data) {
                              var event = { id: data.item.Id, title: data.item.Title, start: toDateFromJson(data.item.EndDate) }
                              $('#calendar').fullCalendar('renderEvent', event, true);                                        
                            }
                        });                            
                      }                            
                    },                  
        cancel: {}, 
     },
});

Когда я нажимаю на кнопку Save, то в контроллер передаются значения из input'ов. В контроллере я эти значения добавляю в модель и отправляю на другие слои.

Контроллер:

public ActionResult CreateEvent(string title, string additional, DateTime startDate, DateTime endDate)
{
    BLL.Model.CalendarModelItem item = new BLL.Model.CalendarModelItem {
        Title = title,
        Additional = additional,
        StartDate = startDate,
        EndDate = endDate
    };
            calDbProv.Add(item);

            return Json( new { status = "success", item }, JsonRequestBehavior.AllowGet);
}

Я бы хотел понять, как из формы, которая создается по клику отправлять в контроллер сразу модель с помощью ajax?

Вот код модели:

public class CalendarModelItem
{
    public int Id { get; set; }
    public string Title { get; set; }
    public string Additional { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }        
}
Answer 1

Разобрался. Сразу модель отправлять нельзя, но можно отправить все данные, как я и делал, далее модель их принимает и все работает.

public ActionResult CreateEvent(BLL.Model.CalendarModelItem item)
{ 
    calDbProv.Add(item);
    return Json( new { status = "success", item }, JsonRequestBehavior.AllowGet);
}
READ ALSO
Как настроить Webpack + Babel + Gulp

Как настроить Webpack + Babel + Gulp

ПриветХочу научиться работать с современными фронт-енд инструментами, но я что-то совершенно не могу найти ни одного человеческого мануала/скринкаста...

278
как конвертиравать string в numeric [дубликат]

как конвертиравать string в numeric [дубликат]

На данный вопрос уже ответили:

260
slideToggle как отобразить только один блок из списка

slideToggle как отобразить только один блок из списка

Не знаю как отобразить только один блок из спискаПисать для каждого свою функцию уж совсем глупо будет

268
Открыть несколько табов по одному клику Chrome

Открыть несколько табов по одному клику Chrome

Вопрос таков - хоть какими-нибудь хаками возможно это сделать? У меня пользователи выбирают список линков и по клику они должны разом открываться...

332