Asp.net mvc ASP.NET核心MVC2.2在模型中失去价值
我正在ASP.NET Core 2.2平台上开发一个MVC应用程序。我有以下课程:Asp.net mvc ASP.NET核心MVC2.2在模型中失去价值,asp.net-mvc,asp.net-core,Asp.net Mvc,Asp.net Core,我正在ASP.NET Core 2.2平台上开发一个MVC应用程序。我有以下课程: public class BaseModel { public string ErrorMessage { get; set; } } public class LoginModel : BaseModel { public string Username { get; set; } public strinh Password { get; set; } } public class A
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" />
@model MyProject.Models.LoginModel
$(文档).ready(函数(){
var_err=$('#ErrorMessage').val();
如果(_err!=null&&u err!=''){
警惕(_err);
}
});
我希望在发回控制器后看到错误。调试时,我看到控制器中设置了ErrorMessage属性,但隐藏字段中的值为空。似乎错误在于隐藏字段被放置在表单中。把它从表单中放出来就行了。你不需要把
ErrorMessage
放在一个隐藏的字段中,这样就可以实现从客户端到服务器的往返。相反,您只需在视图中的任何位置使用@Model.ErrorMessage