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>)   
Другие вопросы по тегам