我正在 ASP.NET Core 2.2 平台上开发 MVC 应用程序。我有以下类(class):
public class BaseModel
{
public string ErrorMessage { get; set; }
}
public class LoginModel : BaseModel
{
public string Username { get; set; }
public strinh Password { get; set; }
}
public class AccountController
{
[HttpGet]
public IActionResult Login()
{
LoginModel model = new LoginModel();
return View(model);
}
[HttpPost]
public IActionResult Login(LoginModel model)
{
try
{
throw new Exception("Test exception");
}
catch(Exception ex)
{
model.ErrorMessage = ex.Message;
return View (model);
}
}
}
我的 cshtml 文件如下:
@model MyProject.Models.LoginModel
<script>
$(document).ready(function () {
var _err = $('#ErrorMessage').val();
if (_err != null && _err != '') {
alert(_err);
}
});
</script>
<input type="hidden" asp-for="ErrorMessage" />
我期望的是在发回 Controller 后看到错误。当我调试时,我看到 Controller 中设置了 ErrorMessage 属性,但隐藏字段中的值为空。
最佳答案
错误似乎是隐藏字段被放置在表单内。将其放在表单之外就可以了。
关于asp.net-mvc - ASP.NET Core MVC 2.2 在模型中失去值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59624329/