В моем проекте MVC я создал таблицу из созданной мной базы данных и добавил кнопки «Редактировать / Сохранить» и «Удалить», чтобы соответствующим образом взаимодействовать с БД.Я создал код в файле cshtml с razor-нотацией для цикла, что означает, что все мои элементы ввода имеют одинаковое имя (для вызова в контроллере).
Я пытаюсь выяснить, каквыделите конкретную строку и получите конкретный элемент, даже если есть несколько элементов с одинаковым именем (количество строк в моей таблице).
фрагмент моего представления:
@{
int i=0;
foreach(link l in Model.links)
{
<tr>
<td><input class="idField" name="link.Id" type="text" value="@l.Id" disabled="disabled" /></td>
<td><input class="linkField" name="link.link" type="text" value="@l.link" disabled="disabled" /></td>
<td><input class="timeField" name="link.Time" type="text" value="@l.Id" disabled="disabled" /></td>
<td>
<input class="edit" type="button" value="Edit" formaction="Update" onclick="enableField(@i)" />
</td>
</tr>
i++;
}
}
Действие обновления в моем контроллере:
public ActionResut Update(){
LinkDal dal = new LinkDal(); /*LinkDal uses Entity framework to connect to my DB*/
List<Link> links = dal.links.ToList<Link>();
Link toUpdate = dal.links.Find(int.Parse(Request.Form["link.Id"].ToString()));
toUpdate.link = Request.Form["link.link"].ToString();
toUpdate.Time = int.Parse(Request.Form["link.link"].ToString());
dal.SaveChanges();
VMLinks vml = new VMLinks();
vml.link = toUpdate;
vml.links = links;
return View("MyView", vml);
}
вместо того, чтобы получить конкретный объект "ссылки", "toUpdate" становится нулевым, потому что Request.Form ничего не возвращает.Я попытался ввести идентификатор, который, как я знаю, существует, и код работает (БД обновлена).Моя проблема в том, что я не могу получить доступ к тексту внутри элемента ввода, потому что есть несколько элементов с одинаковым именем (например, "link.Id").