Я пытаюсь использовать связыватель модели по умолчанию в asp.net mvc, чтобы связать список скрытых полей
<input id="entity" name="entity" type="hidden" value="/string/one/here" />
<input id="entity" name="entity" type="hidden" value="/another/string/here" />
<input id="entity" name="entity" type="hidden" value="/last/string/here" />
С List<string>
следующим образом:
[HttpPost]
public ActionResult Move(List<string> entity)
{
return View(entity);
}
Когда я публикую форму, представление отображает содержимое списка следующим образом:
<%foreach (string item in Model)
{%>
<%: Html.Hidden("entity", item)%>
<!--binding not working correctly -->
<%} %>
И сгенерированное содержимое выглядит так:
<input id="entity" name="entity" type="hidden" value="/last/string/here" />
<input id="entity" name="entity" type="hidden" value="/last/string/here" />
<input id="entity" name="entity" type="hidden" value="/last/string/here" />
Я в замешательстве.Я попытался изменить исходное скрытое поле на это:
<input id="entity__" name="entity[]" type="hidden" value="/string/one/here" />
<input id="entity__" name="entity[]" type="hidden" value="/another/string/here" />
<input id="entity__" name="entity[]" type="hidden" value="/last/string/here" />
Но когда я попытался опубликовать это, я получил эту ошибку:
System.NullReferenceException: Object reference not set to an instance of an object.
в этой строке кода в представлении:
<%foreach (string item in Model)
Мне удалось связать список строк раньше ... без использования индекса в имени.Я не понимаю, почему это не работает правильно.Может быть, новый взгляд поможет мне с этим?
Спасибо
edit
В продолжении срока действия.Я отключил HtmlHelper и жестко запрограммировал скрытое поле внутри цикла foreach
следующим образом:
<%foreach (string item in Model)
{%>
<input id="entity" name="entity" type="hidden" value="<%:item %>" />
<%} %>
Этот работал .Я понятия не имею, в чем разница между кодом Html-помощника и этим, поэтому я поставил два рядом друг с другом и попытался сопоставить их.
<input id="entity" name="entity" type="hidden" value="//Content/files/NewDirectory/Aesculuparviflora011cm.jpg" />
<input id="entity" name="entity" type="hidden" value="//Content/files/NewDirectory/Aesculuparviflora011cm.jpg" />
Они идентичны.Но привязка работает, когда я жестко кодирую теги, и не работает, когда я использую помощник html.Что дает ?????????