如何在webgrid列中格式化html助手

时间:2013-03-01 12:48:41

标签: asp.net-mvc-3

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助手?

2 个答案:

答案 0 :(得分: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)
{
    ...
}

答案 1 :(得分:0)

这样做的一种方式是:

Format: m => Html.TextBoxFor(mdelItem => modelItem.CompanyName, new {@class="edit-mode"})