Отправить значения из модели в качестве параметров в функции - PullRequest
1 голос
/ 15 мая 2019

У меня есть представление с 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>);

Но это даже не вызывает функцию.

Какая правильная форма для записи параметров модели, чтобы она работала?

1 Ответ

0 голосов
/ 15 мая 2019

Вы можете использовать HtmlString:

.RenderValueAs(model => new HtmlString("<button onclick='confirmDelete(" + model.EventID + ", " + model.CalendarID + ")' class='btn btn-default'>Borrar</button>"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...