2

これが完全に可能かどうかはわかりません。

現在、webgrid の特定の列のテキスト ボックスを表示することができましたが、コントローラーに送信されたときにモデルの一部になるように変更された値を持つことはまったく可能ですか?

これを行うことができる別のアプローチはおそらくありますか?

4

2 に答える 2

1

はい、「テキスト」タイプの入力にし、フォーム内に配置します。各行内にフォームを作成できます(この場合、ポストバックは単一のレコードになります)。または、Webgrid全体をフォーム内に配置することもできます。後者は、入力に対して正しい名前を付ける必要があるため、注意が必要です。たとえば、モデルの名前が「mycollection」で、テキストボックスが「prop1」をターゲットにしている場合、行は次のようになります。

行1

<input type="text" name="mycollection[0].prop1" value="@item.prop1" />

行2

<input type="text" name="mycollection[1].prop1" value="@item.prop1" />

等。

これは明らかに完全な答えではありませんが、お役に立てば幸いです。

于 2012-05-23T04:21:58.437 に答える
0

このようなもの ?

    var grid = new WebGrid(Model, canPage: true, rowsPerPage: 20);
    @grid.GetHtml(tableStyle: "table", alternatingRowStyle: "alternate", headerStyle: "header",
    columns: grid.Columns(
       grid.Column(columnName: "name", header: "Name", canSort: true),
       grid.Column(format: @<span>@Html.TextBox("Age",@item.age)</span>   ),              
       grid.Column(" ", " ", format: @<a href="@Url.Action("AddAge", "People", new { id = item.id, ag = age })">Add age</a>), 

そして、あなたは持っています

    public ActionResult AddAge(string id, int age = 1)
    {
        var peopleqry = db.People.Single(a => a.id== id);
        // do somehing with your age
        return RedirectToAction("Index");
    }

Html.TextBox(... , _ _) が機能するかどうかはわかりません。

お役に立てば幸いです。

于 2012-05-24T15:34:33.583 に答える