2016-12-16 69 views
0
@foreach (var item in b) 
{ 
    itemCount++; 
    <input type="hidden" name="[email protected](itemCount.ToString())" value="@item.CouseClassId" /> 
    <input type="hidden" name="[email protected](itemCount.ToString())" value="@item.AnotherId" /> 
} 

和HTML將是這樣的:.NET MVC控制器接收動態表單域提交的值?

<input type="hidden" name="class1" value="123" /> 
    <input type="hidden" name="item1" value="456" /> 
    <input type="hidden" name="class2" value="789" /> 
    <input type="hidden" name="item2" value="1011" /> 

我的控制器:

[HttpPost] 
public ActionResult CarAddStudent(object model) { 
    return View("Another"); 
} 

在該方法中的控制器,我怎麼申報的型號和我會收到來自剃刀的動態值?

+1

你的模型屬性名稱的屬性那麼模型將與數組匹配名字 –

+0

也請參閱[這個答案](http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943) –

回答

5

您可以使用列表來接收他們 這樣

<input type="hidden" name="class[0]" value="123" /> 
<input type="hidden" name="item[0]" value="456" /> 
<input type="hidden" name="class[1]" value="789" /> 
<input type="hidden" name="item[1]" value="1011" /> 

和控制器:

[HttpPost] 
public ActionResult CarAddStudent(List<int> class,List<int> item) { 
    return View("Another"); 
} 

順便說一下,我想,「類」和「項目」的關係,所以你可能需要使用一個模型列表來接收,像這樣:

<input type="hidden" name="student[0].class" value="123" /> 
<input type="hidden" name="student[0].item" value="456" /> 
<input type="hidden" name="student[1].class" value="789" /> 
<input type="hidden" name="student[1].item" value="1011" /> 

然後,你的接收器IVE模型應該是這樣的:

[HttpPost] 
public ActionResult CarAddStudent(List<Student> student) { 
    return View("Another"); 
} 

類和物品被MUSTmatch的HTML輸入控件的名稱,或者如果你想有相同名稱控制學生班級

+0

它的作品,謝謝! –

+1

你可以刪除'student'前綴。它應該只是'名= 「[0]的.class」 等' –