asp.net-mvc - ASP.NET Core MVC 2.2 在模型中失去值(value)

标签 asp.net-mvc asp.net-core

我正在 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/

相关文章:

azure - 在同一reactjs应用程序和aspnet core web api中混合Azure AD和Azure AD B2C身份验证

c# - revEng 命令现在需要提供程序。应该通过什么?

asp.net-mvc - EF4.3.1中的MaxLength属性

asp.net-mvc - Angular2 http post 无法捕获 Controller 操作

environment-variables - 如何在生产环境中设置 ASP.NET 5 环境变量

.net - 找不到与某些项目的目标运行时之一兼容的框架 .NETCoreApp=v1 的运行时目标

asp.net-core - 获取注入(inject)的 IOptions<AppSettings>

asp.net-mvc - ASP.NET MVC 返回空 View

c# - nlog 登录到另一个目录

asp.net-mvc - MVC 中的 MVC-ControllerTypeCache.xml