Asp.net core 将数据发布到控制器Asp.Net核心MVC时,模型为空

Asp.net core 将数据发布到控制器Asp.Net核心MVC时,模型为空,asp.net-core,Asp.net Core,我有一个表单,它有一个文本区域,当我输入计数小于200的字符时,工作正常。如果字符限制超过200,则在提交表单时,我的整个模型将变为空 所以我现在已经添加了最大长度属性,但我的要求是输入最大字符。我的代码片段如下 [HttpPost] [Route("notes")] public async Task<JsonResult> AddNotes(ProfileReviewNotesViewModel model) { var response = await

我有一个表单,它有一个文本区域,当我输入计数小于200的字符时,工作正常。如果字符限制超过200,则在提交表单时,我的整个模型将变为空

所以我现在已经添加了最大长度属性,但我的要求是输入最大字符。我的代码片段如下

[HttpPost]
[Route("notes")]
public async Task<JsonResult> AddNotes(ProfileReviewNotesViewModel model)
{
   var response = await this.profileModelBuilder.SaveNots(model, UserId);
   return Json(response);
}
模型为

[BindProperty]
 [Required(ErrorMessage ="notes are required")]
 [MaxLength(200)]
 public string Notes { get; set; }
我的控制器如下

[HttpPost]
[Route("notes")]
public async Task<JsonResult> AddNotes(ProfileReviewNotesViewModel model)
{
   var response = await this.profileModelBuilder.SaveNots(model, UserId);
   return Json(response);
}
[HttpPost]
[路线(附注)]
公共异步任务AddNotes(ProfileReviewNotesViewModel模型)
{
var response=wait this.profileModelBuilder.SaveNots(model,UserId);
返回Json(响应);
}

请帮助我解决此问题。

您需要使用
ModelState.IsValid
。基本上,如果模型有错误,属性不会被填充,而是
ModelState.IsValid=false
并且ModelState包含错误

[HttpPost]
[Route("notes")]
public async Task<JsonResult> AddNotes(ProfileReviewNotesViewModel model)
{
   if ( !ModelState.IsValid )
       return <bad request> //here


   var response = await this.profileModelBuilder.SaveNots(model, UserId);
   return Json(response);
}
[HttpPost]
[路线(附注)]
公共异步任务AddNotes(ProfileReviewNotesViewModel模型)
{
如果(!ModelState.IsValid)
返回//此处
var response=wait this.profileModelBuilder.SaveNots(model,UserId);
返回Json(响应);
}

非常感谢您。我收到错误,因为无法读取请求表单。超出表单值长度限制200。有没有办法增加表单的值长度?无法读取请求表单。表单值长度限制超过200我最终解决了这个问题。我们需要使用enctype=“多部分/表单数据”。。非常感谢您帮助我找出根本原因