MVC 3 Webgrid Column
В данный момент я работаю над сеткой MVC 3, в одной из колонок я хочу иметь кнопку, я добился этого, поместив следующий код в представление.
@grid.GetHtml(columns:
grid.Columns(
grid.Column("ID", "id", canSort: true),
grid.Column("Surname", "surname", canSort: true),
grid.Column("Forenames", "forename", canSort: true),
grid.Column(format: @<input type="button" value="View"/>)),
headerStyle: "header",
alternatingRowStyle: "alt",
htmlAttributes: new { id = "DataTable" }
)
Тем не менее, я хочу создать серверную часть сетки для подкачки страниц, но когда я добавлю приведенный ниже код в действие, я получаю сообщение об ошибке для столбца кнопки.
var htmlString = grid.GetHtml(tableStyle: "webGrid",
headerStyle: "header",
alternatingRowStyle: "alt",
htmlAttributes: new { id = "DataTable" },
columns: grid.Columns(
grid.Column("ID", "id", canSort: true),
grid.Column("Surname", "surname", canSort: true),
grid.Column("Forenames", "forename", canSort: true),
grid.Column(format: @<input type='button' value='View'/>)
));
Первая ошибка: "Ключевое слово, идентификатор или строка ожидаются после точного спецификатора: @".
Я использую неправильный формат в столбце кнопки?
2 ответа
Похоже, вы пытаетесь использовать синтаксис Razor в вашем коде позади. Попробуйте что-то вроде этого, используя лямбда-выражение...
gridColumn.Format = (item) =>
{
return new HtmlString("<input type='button' value='View'/>");
}
Ты можешь попробовать <text>
тег для бритвы, как это;
grid.Column(format: @<text><input type='button' value='View'/></text>)