2016-12-16 1 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 Controller получает значение динамического поля формы?

<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"); 
} 

В регуляторе метода, как я объявляю тип модели, и я буду получать динамическое значение от Razor ?

+1

Ваших модели имен свойств Student Class MUSTmatch имена HTML элементов управления вводом, или если вы хотите иметь контроль с тем же именем то модель принимает это с массивом, соответствующим этому имени –

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

а затем ваша реквизит Айв модель должна выглядеть так:

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

класса и пункт является собственностью

+0

Это работает, благодаря! –

+1

Вы можете удалить префикс 'student'. Это должно быть просто 'name =" [0] .class "и т. Д. –

Смежные вопросы