Невозможно получить значения из вида - PullRequest
0 голосов
/ 20 июня 2019

Я изучаю Единицу работы, хранилища и обслуживания. Теперь я не знаю, почему введенные значения кажутся нулевыми при входе в систему на экране

После ввода значений, когда я отправляю, на экране значений отображается только ноль

в то время как точки останова в контроллере я обнаружил, что есть ноль.

Контроллер:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Model;
using ClassLibrary1;
namespace Registeration.Controllers
{
    public class DbController : Controller
    {
        // GET: Db
        public ActionResult Index()
        {
            Service obj = new Service();
            var lis = obj.GetAllLogins();
            return View(lis);
        }
        public ActionResult Create()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Create(Mdl Obj)
        {
            Service obj1 = new Service();
            var details = obj1.CreateEmp(Obj);
            return RedirectToAction("Index");
        }
        public ActionResult Login()

        {
            return View();
        }
        [HttpPost]
        public ActionResult Login(string userName, string dpt)
        {
            Service obj = new Service();
            var res = obj.Login(userName, dpt); //values shows null
            if (res != null)
            {
                return RedirectToAction("Index");
            }
            return RedirectToAction("Login");
        }
    }
}

Сервисный код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AutoMapper;
using DataAccess;
using DataAccess.UoW;
using Model;

namespace ClassLibrary1
{
    public class Service
    {
        private readonly Unit _uow;
        public Service()
        {
            _uow = new Unit();
        }
        public IEnumerable<Mdl> GetAllLogins()
        {
            var logins = _uow.Register.GetAll().ToList();
            if (logins.Any())
            {
                var config = new MapperConfiguration(cfg =>
                {
                    cfg.CreateMap<Table_1, Mdl>();
                });

                IMapper mapper = config.CreateMapper();
                var dest = mapper.Map<List<Table_1>, List<Mdl>>(logins);
                return dest;
            }
            return null;
        }
        public Mdl Login(string userName,string dpt)
        {
            var logins = _uow.Register.Get(x=>x.Name==userName && x.Deprmt==dpt);
            if (logins != null)
            {
                var obj1 = new Mdl();
                if (logins.Id > 0)
                    return obj1;
            }
            return null;
        }
    }
}

Модель:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    public class Mdl
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Sex { get; set; }
        public string Deprmt { get; set; }
        public string State { get; set; }
    }
}

1 Ответ

0 голосов
/ 20 июня 2019

Вы не показали, что просматриваете код здесь. Если он используется в методе входа в систему [POST], возможно, вы не используете атрибут name в элементе управления html.

Элементы управления должны иметь то же имя, что и ваши параметры (userName, dpt), чтобы ModelBinder мог их связать.

...