我有一个带有注册表单的滑块,我将表单创建为部分 View 。 这是创建注册表单的方法: 获取方式:
public IActionResult CorporationRegisterRequest()
{
CorporationRequestViewModel corporationViewModel = new CorporationRequestViewModel();
return PartialView("CorporationRegisterPartial", corporationViewModel);
}
发帖方法
[HttpPost()]
[Route("CorporationRegister")]
public async Task<IActionResult> CorporationRegisterRequest(CorporationRequestViewModel corporationRequestViewModel)
{
if (ModelState.IsValid)
{
var result = await _userService.CreateCorporationRequest(corporationRequestViewModel);
switch (result)
{
case CorporationRequestResult.Failed:
TempData[ErrorMessage] = "NotFound";
break;
case CorporationRequestResult.UserHasNotRequestWithThisNumber:
TempData[WarningMessage] = "User Has no Request with this Number";
break;
case CorporationRequestResult.Successfully:
TempData[SuccessMessage] = "Your Request send, Our Staff Calling You As soon As Possible";
return RedirectToAction("Index", "Home");
}
}
return RedirectToAction("CorporationRegisterRequest", PartialView("CorporationRegisterPartial", corporationRequestViewModel));
}`
如果模型有效,则一切正常并添加到数据库。但是如果模型状态无效,它必须返回到索引页面,索引包括该部分 我怎样才能恢复到部分?我的方法最后一次返回时遇到问题,如果模型无效,则同时显示“corporationRequestViewModel”和索引
一般来说,您可以使用 PartialView 结果返回它(就像在上面的 GET 方法中所做的那样)+ 将绑定的模型实例(来自操作方法参数)作为参数传递(以保留/可视化模型状态错误):
public async Task<IActionResult> CorporationRegisterRequest(CorporationRequestViewModel corporationRequestViewModel) {
if (ModelState.IsValid) {
...
}
//return RedirectToAction("CorporationRegisterRequest", PartialView("CorporationRegisterPartial", corporationRequestViewModel));
return PartialView("CorporationRegisterPartial", corporationRequestViewModel);
}
但是,如果您执行异步 POST 请求,它似乎是有效的。否则,您可能需要返回整个 View 结果并传输模型 Model 实例,而不是创建新实例,例如使用 TempData。