получить значения в классе контроллера из элементов HTML с тем же именем - PullRequest
0 голосов
/ 14 февраля 2019

В моем проекте 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").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...