2012-05-22 14 views

回答

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" /> 

等等

這顯然不是一個完整的答案,但我希望它有幫助。

+0

謝謝,是這就是我的想法,現在已經設法實現它,所以至少它在回發模型中回來,但由於某種原因現在集合中的其他屬性或null或空,之前他們有價值的地方。對於示例集合有兩個屬性StockValue,StockQuantity。 StockValue的負載值爲259,現在在回發模型中有0個值?有任何想法嗎? –

+0

其他字段必須以表格的形式顯示,如果您希望他們回貼。您可以將它們添加爲類型爲「隱藏」的輸入。 – McGarnagle

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(... _ _)的作品。

我希望它有幫助。