【发布时间】:2022-12-09 18:01:18
【问题描述】:
当我将模型传递给 post 方法的视图时,ProductId 和 UserId 被清空。
[HttpGet]
public async Task<IActionResult> AddReview(int id)
{
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
var model = new AddReviewViewModel()
{
ProductId = id,
UserId = userId
};
return View(model);
}
[HttpPost]
public async Task<IActionResult> AddReview(AddReviewViewModel addReviewViewModel)
{
if (!ModelState.IsValid)
{
return View(addReviewViewModel);
}
//...
}
这是我调用 post 方法的方式。
<div class="row">
<div class="col-sm-12 offset-lg-2 col-lg-8 offset-xl-3 col-xl-6">
<form asp-action="AddReview" method="post">
<div class="mb-3">
<label asp-for="@Model.Comment" class="form-label">Comment</label>
<input asp-for="@Model.Comment" class="form-control" aria-required="true" />
<span asp-validation-for="Comment" class="text-danger"></span>
</div>
<div class="mb-3">
<label asp-for="@Model.Rating" class="form-label">Comment</label>
<input asp-for="@Model.Rating" class="form-control" aria-required="true" />
<span asp-validation-for="Rating" class="text-danger"></span>
</div>
<div class="mb-3">
<input class="btn btn-primary" type="submit" value="Submit Review" />
</div>
</form>
</div>
</div>
我在添加新产品时做过类似的事情,但我没有遇到任何问题。
【问题讨论】:
-
“如果模型状态不是有效 ..." - 不确定,但是否会因为“无效”状态而被重置?
-
你能告诉我们你调用那个 post 方法的代码吗?
-
SubKey={UserId}, Key="UserId", ValidationState=Invalid 无效状态
-
@Silvermind 好了,我已经通过添加代码编辑了帖子。