Пользуюсь плагином 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; }
}
Разобрался. Сразу модель отправлять нельзя, но можно отправить все данные, как я и делал, далее модель их принимает и все работает.
public ActionResult CreateEvent(BLL.Model.CalendarModelItem item)
{
calDbProv.Add(item);
return Json( new { status = "success", item }, JsonRequestBehavior.AllowGet);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ПриветХочу научиться работать с современными фронт-енд инструментами, но я что-то совершенно не могу найти ни одного человеческого мануала/скринкаста...
Не знаю как отобразить только один блок из спискаПисать для каждого свою функцию уж совсем глупо будет
Вопрос таков - хоть какими-нибудь хаками возможно это сделать? У меня пользователи выбирают список линков и по клику они должны разом открываться...