2

Razor 上のこの VB.NET コードの何が問題なのか知りたいです。

@grid.GetHtml("table",
               columns:=New WebGridColumn() {grid.Column("RazonSocial", "Razón Social", canSort:=True),
                                              grid.Column("FechaInicioOp", "Fecha Inicio", Function(c) c.FechaInicioOp.ToShortDateString, canSort:=True),
                                              grid.Column("Direccion.Descripcion", "Dirección", canSort:=False),
                                              grid.Column("Direccion.Estado.Nombre", "Estado", canSort:=False),
                                              grid.Column("", "",
                                                          @@<p>
                                                              @Html.ActionLink("Configurar", "Edit", New With {.IdCondominio = item("IdCondominio")}, New With {.class = "ico edit"})
                                                          </p>
                                                          )})

アプリをデバッグすると、「BC30205: End of statement expected.」というメッセージが表示されます。

このC#コードをVB.NETに変換しようとしていました

@grid.GetHtml(
fillEmptyRows: true,
alternatingRowStyle: "fila-alternativa",
headerStyle: "encabezado-grid",
footerStyle: "pie-grid",
mode: WebGridPagerModes.All,
firstText: "<< Primera",
previousText: "< Anterior",
nextText: "Siguiente >",
lastText: "Última >>",
columns: new[] {
    grid.Column("Nombre", canSort: false),
    grid.Column("Apellidos"),
    grid.Column("EMail", 
                 format: @<a href="mailto:@item.Email">@item.Email</a>
    ),
    grid.Column("FechaNacimiento", 
                header: "Fecha de nacimiento",
                format: p=>p.FechaNacimiento.ToShortDateString()
    ),
    grid.Column("NumeroDeHijos", 
                header: "Número de hijos",
                style: "a-la-derecha"
    ),
    grid.Column("",
                header: "Acciones",
                format: @<text>

@Html.ActionLink("Editar", "Edit", new { id = item.IdPersona }) | @Html.ActionLink("Eliminar", "Delete", new { id = item.IdPersona }) </text>)
})

しかし、何が問題なのか、何かが足りないのかどうかはわかりません。

4

1 に答える 1

1

列コレクションの翻訳が完全に正しいとは思いません。

以下を変更すると:

columns:=New WebGridColumn()

読むために:

columns:=grid.Columns(

そして、ステートメントの最後にもう1つの閉じ括弧 ')' を追加すると、うまくいきます。

変更を含むステートメント全体は次のとおりです。

@grid.GetHtml("table",
               columns:=grid.Columns(
               {
                   grid.Column("RazonSocial", "Razón Social", canSort:=True),
                   grid.Column("FechaInicioOp", "Fecha Inicio", Function(c) c.FechaInicioOp.ToShortDateString, canSort:=True),
                   grid.Column("Direccion.Descripcion", "Dirección", canSort:=False),
                   grid.Column("Direccion.Estado.Nombre", "Estado", canSort:=False),
                   grid.Column("", "",
                   @@<p>
                   @Html.ActionLink("Configurar", "Edit", New With {.IdCondominio = item("IdCondominio")}, New With {.class = "ico edit"})
                   </p>
                   )}))

それが役立つことを願っています。

于 2012-12-13T01:45:54.560 に答える