无法将集合转移到索引,它只是消失了,不知道在哪里。如果您尝试使用 iCollection 字段传递 User 类,也会发生同样的事情,所有其他字段(int、string)都可以很好地传递,但集合又是空的。一般来说,如何将整个班级转移到那里?这是什么原因?
进行重定向的操作
[HttpPost]
public async Task<IActionResult> Index(string Login, string Password)
{
//var a = db.Users.Include(p => p.MyElem).Where;
//string Query = $"SELECT [Id], [Login], [Password] FROM [Papka(praktika)].[dbo].[Users] where Login='{Login}' and Password='{Password}'";
//System.Linq.IQueryable<User> a = db.Users.FromSql(Query);
System.Linq.IQueryable<User> a = db.Users.Include(p => p.MyElem).Where(p => p.Login == Login && p.Password==Password);
int g =await a.Include(p => p.MyElem).CountAsync<User>();
if (g > 0)
{
User t =await a.FirstAsync<User>();
List<OneElem> r = t.MyElem.ToList();
return RedirectToAction("Index", "Ocenk", r);
}else
return View();
}
通过重定向接受的操作
public class OcenkController : Controller
{
public IActionResult Index(List<OneElem> log)
{
return View(log);
}
}
模型用户
public class User
{
public int Id { get; set; }
public ICollection<OneElem> MyElem { get; set; }
[Required(ErrorMessage = "Не указан login")]
[MinLength(2)]
[MaxLength(20)]
public string Login { get; set; }
[Remote(action: "Vhod", controller: "Home", ErrorMessage = "Неправильный пароль. Длина пароля должна больше 3 символов.")]
public string Password { get; set; }
public User()
{
MyElem = new List<OneElem>();
}




一般来说,我找到了原因,你不能传输复杂的对象。所以在这种情况下的解决方案是传递一个数组。