gpt4 book ai didi

asp.net-mvc - ASP.NET MVC4, View 将旧值返回给 Controller

转载 作者:行者123 更新时间:2023-12-05 01:13:34 25 4
gpt4 key购买 nike

我是 MVC 和 ASP.NET 的新手。我的要求是,我必须第一次在我的 View 中显示两条记录,并且我的 View 包含一个“交换”按钮。当我按下这个按钮时, Controller 的 post Action 应该执行并且它必须采用原始 View 模型并且需要交换两条记录并且应该呈现相同的 View 。每当我按下交换按钮时,这个过程应该继续。

当我第一次单击 SWAP 时,它工作正常。但是当我下次点击时,我的后期 Controller 操作正在获取原始记录并显示相同的内容。

我的 Controller 代码如下所示。

public ActionResult Dedupe()
{
var selectedClients = TempData["SelectedClients"] as DedupeClientsViewModel;
return this.View(selectedClients);
}

[HttpPost]
public ActionResult Dedupe(DedupeClientsViewModel dedupeClients)
{
if (ModelState.IsValid)
{
//my functionality
}
return this.View(dedupeClients);
}

我需要用“ModelState”做什么才能从 View 中获取新数据。

最佳答案

因为您从帖子中返回相同的模型,所以 ASP.Net MVC 假设您有错误想要呈现给用户(因此它保留原始值)。您可以通过清除整个模型的模型状态或清除一个或多个字段的模型状态来解决此问题。见下文。当然,这将在您的 Controller 中完成。

ModelState.Clear(); //clear entire model state
ModelState.Remove("MyObject.MyProperty"); //clear only one property

Rick Strahl 在他的博客上对这个问题有很好的解释: ASPNET-MVC-Postbacks-and-HtmlHelper-Controls-ignoring-Model-Changes

关于asp.net-mvc - ASP.NET MVC4, View 将旧值返回给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14070486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com