我有一个带有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()));
我想做的是,当我单击Delete(删除)按钮时,会出现一条警报,确认您要删除该项目,因此我在.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
,因为它已经在@
中。我还尝试了How to pass a model field to a Javascript function in a view?的答案:
.RenderValueAs(model => @<button onclick="confirmDelete('" + model.EventID "')" class='btn btn-default'>Borrar</button>);
但这甚至没有调用该函数。
哪种格式可以正确地编写模型参数?
答案 0 :(得分:0)
您可以使用HtmlString:
.RenderValueAs(model => new HtmlString("<button onclick='confirmDelete(" + model.EventID + ", " + model.CalendarID + ")' class='btn btn-default'>Borrar</button>"));