У меня есть представление с GridMVC
и двумя кнопками, в которых я отображаю несколько параметров модели, а также кнопки «Редактировать» или «Удалить элемент» в этой строке.
@Html.Grid(Model).Named("eventsGrid").Columns(columns =>
{
columns.Add(model => model.Summary)
.Titled("Nombre");
columns.Add(model => model.Description)
.Titled("Descripción");
columns.Add(model => model.StartDate)
.Titled("Fecha Inicio");
columns.Add(model => model.EndDate)
.Titled("Fecha Fin");
columns.Add()
.Sanitized(false)
.Encoded(false)
.SetWidth(30)
.RenderValueAs(model => (@Html.ActionLink("Editar", "EditEvent", "Home", new { eventId = model.EventID, calendarId = model.CalendarID }, new { @class = "btn btn-default" }).ToHtmlString()));
columns.Add()
.Sanitized(false)
.Encoded(false)
.SetWidth(30)
.RenderValueAs(model => (@Html.ActionLink("Borrar", "Delete", "Home", new { eventId = model.EventID, calendarId = model.CalendarID }, new {@class = "btn btn-default"}).ToHtmlString()));
Что я хочу сделать, так это то, что когда я нажимаю кнопку «Удалить», появляется предупреждение, подтверждающее, что вы хотите удалить элемент, поэтому я сделал эту функцию в файле .js
:
function confirmDelete(EventID, CalendarID) {
if (confirm('¿Desea borrar este evento?'))
{
$.ajax({
url: '@Url.Action("Delete","Home")',
data: { eventId: EventID, calendarId: CalendarID }
})
} else {
// Do nothing!
}
}
Я изменил это, чтобы выглядеть так:
.RenderValueAs(model => @<button onclick="confirmDelete('model.EventID','model.CalendarID')" class='btn btn-default'>Borrar</button>);
но это делает значения в функции буквально model.EventID и model.CalendarID, и я не могу использовать @model.EventID
, так как он уже находится внутри @
. Я также попытался с ответом от Как передать поле модели в функцию Javascript в представлении? :
.RenderValueAs(model => @<button onclick="confirmDelete('" + model.EventID "')" class='btn btn-default'>Borrar</button>);
Но это даже не вызывает функцию.
Какая правильная форма для записи параметров модели, чтобы она работала?