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

一种方法是:

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