Передача значения текстового поля из представления в контроллер - PullRequest
0 голосов
/ 14 апреля 2020

Итак, вот мой взгляд

@using (Html.BeginForm("ClockIn", "Login", FormMethod.Post)) 
{
    @Html.LabelFor(c => c.Member.PIN)
    @Html.TextBoxFor(c => c.Member.PIN)<br />

    <button type="submit">ClockIn</button>
}

, а вот контроллер ClockIn контроллера

    [HttpPost]
    public ActionResult ClockIn(String Pin)//member clocking in
    {
        var mem = _context.Members.Where(c => c.PIN == Pin).FirstOrDefault();
        var hours = new MemberClubHours();
        hours.ClockIn = DateTime.Now;
        mem.Hours.Add(hours);
        _context.SaveChanges();

        return View();
    }

У меня есть класс членов со значением ПИН, который они используют для включения и отслеживать их часы, но по какой-то причине я получаю нулевое значение в контроллере? Я знаю, что у меня есть ПИН-код в таблице участников, и я ввожу правильный ПИН-код, поэтому я немного запутался, почему ПИН-код в контроллере равен нулю?

1 Ответ

1 голос
/ 14 апреля 2020

Ваша форма, кажется, публикует объект Member, а не только Pin. Но вы пытаетесь захватить «Пин» как string.

Есть много способов сделать это, но вы можете попробовать захватить весь объект-член и получить из него ПИН-код. Примерно так:

    [HttpPost]
    public ActionResult ClockIn(Member member)//member clocking in
    {

       var mem = _context.Members.Where(c => c.PIN == member.PIN).FirstOrDefault();
       var hours = new MemberClubHours();
       hours.ClockIn = DateTime.Now;
       mem.Hours.Add(hours);
       _context.SaveChanges();

       return View();
   }

PS: Я не пробовал это в редакторе кода, поэтому может быть тип или что-то в этом роде.

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