Удалить строку в сетке с флажками в MVC3, используя Visual Studio 2012
Я новичок в MVC3. Я закодировал приложение, в котором я отображаю данные в сетку с флажками. Я пытаюсь выяснить, как отправить определенный идентификатор строки в метод действия контроллера, когда я нажимаю на флажок. Любая помощь приветствуется.
2 ответа
Это полный пример, где у меня есть WebGrid с последним столбцом, содержащим ссылку "Удалить", которая использует Ajax для вызова действия на сервере. По завершении Ajax-запроса соответствующая строка удаляется из таблицы. MvcHtmlString
используется для вставки тега span в столбец. Он содержит значение идентификатора, которое впоследствии используется для идентификации строки, подлежащей удалению из таблицы.
<div id="ssGrid">
@{
var grid = new WebGrid(canPage: false, canSort: false);
grid.Bind(
source: Model,
columnNames: new[] { "Location", "Number", "Protection", "Methodology" }
);
}
@grid.GetHtml(
tableStyle: "webGrid",
headerStyle: "header",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("Location", "Location"),
grid.Column("Number", "Number"),
grid.Column("Protection", "Protection"),
grid.Column("Methodology", "Methodology"),
grid.Column(
format: (item) =>
new MvcHtmlString(string.Format("<span id='ssGrid{0}'>{1}</span>",
item.SecondarySystemId,
@Ajax.RouteLink("Remove",
"Detail", // route name
new { action = "RemoveSecondarySystem", actionId = item.SecondarySystemId },
new AjaxOptions {
OnComplete = "removeRow('ssGrid" + item.SecondarySystemId + "')"
}
)
)
)
)
)
)
</div>
<script>
function removeRow(rowId) {
$("#" + rowId).closest("tr").remove();
}
</script>
Все зависит от того, что вы пытаетесь сделать. Обычно в представлении я добавляю атрибут данных, например data-rowid="###", а затем использую jQuery для захвата события.click. Затем в событии.click получите значение элементов clicked для data-rowid и вызовите.ajax, чтобы отправить данные в контроллер.