我不確定這是否完全可行。在MVC Webgrid中爲item.Quantity實現文本框,其值爲回發
目前我已經設法爲webgrid中的某個列顯示一個文本框,但它是否在 所有可能的值都會被更改爲模型的一部分,當它被提交回控制器時?
這可能是另一種方法嗎?
我不確定這是否完全可行。在MVC Webgrid中爲item.Quantity實現文本框,其值爲回發
目前我已經設法爲webgrid中的某個列顯示一個文本框,但它是否在 所有可能的值都會被更改爲模型的一部分,當它被提交回控制器時?
這可能是另一種方法嗎?
是的,將它作爲「文本」類型的輸入,並將其放入表單中。您可以在每行中創建一個表單(在這種情況下,回發將是單個記錄);或者您可以將整個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" />
等等
這顯然不是一個完整的答案,但我希望它有幫助。
像這樣的東西?
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(... _ _)的作品。
我希望它有幫助。
謝謝,是這就是我的想法,現在已經設法實現它,所以至少它在回發模型中回來,但由於某種原因現在集合中的其他屬性或null或空,之前他們有價值的地方。對於示例集合有兩個屬性StockValue,StockQuantity。 StockValue的負載值爲259,現在在回發模型中有0個值?有任何想法嗎? –
其他字段必須以表格的形式顯示,如果您希望他們回貼。您可以將它們添加爲類型爲「隱藏」的輸入。 – McGarnagle