0
var grid = new WebGrid(Model, rowsPerPage: 10, canPage: true);

 @grid.GetHtml(
       columns: new[]
       {
       grid.Column("CompanyName",
                    style: "col1",
                    format:@Html.TextBoxFor(modelItem => modelItem.CompanyName,new{@class="edit-mode"})
    )
})

フォーマットでは、このように表示されます

cannot convert from html string to function <dynamic object>

私も試してみました

format: item => Html.TextBox(
        (string)item.CompanyName
    )

webgrid で HTML ヘルパーをフォーマットするにはどうすればよいですか?

4

2 に答える 2

2

このようにしてみてください:

grid.Column(
    "CompanyName",
    style: "col1",
    format: item => Html.TextBoxFor(
        modelItem => modelItem.CompanyName, 
        new { @class="edit-mode" }
    )
)

しかし、あなたのビューは別のモデルにバインドされていると思うので、それはあなたが望むものではないと思います。

代わりに必要なものは次のとおりです。

grid.Column(
    "CompanyName",
    style: "col1",
    format: 
        @<text>
            @{ var index = Guid.NewGuid().ToString(); }
            @Html.Hidden("HeaderItems.Index", index)
            Html.TextBox(
                "[" + index + "].CompanyName", 
                item.CompanyName, 
                new { @class="edit-mode" }
            )
        </text>
)  

投稿先のビューは、ビュー モデルのコレクションに強く型付けされる可能性があります。

[HttpPost]
public ActionResult SomeAction(IEnumerable<CompanyViewModel> model)
{
    ...
}
于 2013-03-01T12:53:09.240 に答える
0

それを行う1つの方法は次のようになります:

Format: m => Html.TextBoxFor(mdelItem => modelItem.CompanyName, new {@class="edit-mode"})
于 2013-03-01T12:52:26.363 に答える