簡體   English   中英

綁定到ASP.NET MVC中的強類型對象的集合

[英]Binding to a Collection of Strongly-Typed Objects in ASP.NET MVC

我有一個包含許多字段的數據類:

public class Person
{
    public int id { get; set }
    public string Name { get; set; }
    public double Rate { get; set; }
    public int Type { get; set; }
}

如果我理解Scott Hanselman對綁定對象數組的看法,我應該能夠創建一個表單視圖,呈現如下所示的HTML:

<input name="Person[0].id" value="26" type="hidden" />
<input name="Person[0].Name" value="Tom Smith" type="text" />
<input name="Person[0].Rate" value="40.0" type="text" />
<select name="Person[0].Type">
    <option selected="selected" value="1">Full Time</option>
    <option value="2">Part Time</option>
</select>

<input name="Person[1].id" value="33" type="hidden" />
<input name="Person[1].Name" value="Fred Jones" type="text" />
<input name="Person[1].Rate" value="45.0" type="text" />
<select name="Person[1].Type">
    <option value="1">Full Time</option>
    <option selected="selected" value="2">Part Time</option>
</select>

然后,我應該能夠使用如下所示的操作方法在我的控制器中捕獲此數據:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult People(Person[] array)
{
    // Do stuff with array
}

但它不起作用。 數組變量始終為null。 我解釋這一點,因為數據綁定不起作用。 但為什么?

您的字段應命名為array [0] .id,array [0] .Type,...

它們應該具有數組實例的名稱,而不是數組中Type的名稱。

或者,您可以將actioncontroller的簽名更改為:Person [] Person

你明白了這一點:-)

<input name="Person[0].Rate" value="40.0" type="text" />

應該:

<input name="array[0].Rate" value="40.0" type="text" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM