gpt4 book ai didi

asp.net-mvc - 为什么模型绑定(bind)在我的 POST 操作方法中不起作用?

转载 作者:行者123 更新时间:2023-12-04 22:29:50 26 4
gpt4 key购买 nike

我对 MVC 有一个非常奇怪的问题。
我的模型一直被提交为空。
这可能真的很简单,但我就是找不到问题。

我的模型如下所示:

public class LoginModel
{
public string Username;
public string Password;
}

我的 Controller 是这样的:
[HttpGet]
public ActionResult Login()
{
return View();
}

[HttpPost]
public ActionResult Login(LoginModel loginTest)
{
if (loginTest.Username != "x" && loginTest.Password != "y")
{
ModelState.AddModelError("a", "Login failed.");
return View(loginTest);
}
else
{
return RedirectToAction("Home", "Welcome");
}

}

而且 View 也很简单,像这样。
@model LoginSolution.Models.LoginModel
@{
Layout = null;
}
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Login</title>
</head>
<body>
@using (Html.BeginForm("Login", "Home"))
{
<div> <span>Username : </span>
@Html.EditorFor(model => model.Username)
<br />
<span>Password : </span>
@Html.EditorFor(model => model.Password)
<br />
@Html.ValidationSummary()
<br />
<input type="submit" value="Login" name="Login" />
</div>
}
</body>
</html>

这不是关于安全或最佳实践的问题。
这只是一个关于为什么模型在提交时一直返回为空的问题。

最佳答案

您的模型包含字段,而不是属性(没有 getter/setter),因此模型绑定(bind)器无法设置值。将您的模型更改为

public class LoginModel
{
public string Username { get; set; }
public string Password { get; set; }
}

关于asp.net-mvc - 为什么模型绑定(bind)在我的 POST 操作方法中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com