gpt4 book ai didi

c# - 可以中止 MVC 操作并保持 View 不变(无需重写 View 的 GET "load code")?

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:32 25 4
gpt4 key购买 nike

致力于 MVC5 网络应用。

我有一个基于复杂 View 模型的 View 。在主要的 GET 方法中,我正在填充此 View 模型、设置某些 ViewBag 项等......我现在将其称为“加载代码”。

所以,我的 View 基本上是一个数据输入表单。业务规则相当复杂。当用户点击保存按钮时,我执行 POST 并运行一些检查规则等的 c# 代码...如果失败,我只想“中止”该操作并向用户显示相同的 GET View 。

我的问题涉及最初加载 View 时所做的所有工作:ViewBag 代码、viewmodel 的填充等……我是否必须在我的 POST 中再次编写此“加载代码”?这似乎很多余。有没有一种方法可以让我“中止”ActionResult/POST 并显示 GET View ?

我希望这是有道理的。谢谢!

**** 更新/澄清 - 基于评论 ****

我想这个问题更像是一个“一般”问题。您能否“中止”POST 并“返回”GET View 而不重新运行所有“加载代码”(用于下拉菜单、填充 View 模型等....)

最佳答案

如果您想转到服务器并进行验证,然后决定是否要接受 POST 或失败/中止,并保留包含所有值的前一页那么我会建议您在 AJAX 中处理这个问题。创建第三个操作/API 方法并将您的验证逻辑保留在那里。然后在表单提交上使用ajax点击验证操作,如果您从服务器获得True,服务器将返回True/False(带有任何错误消息)然后让javascript发布您的表单否则显示任何错误消息并返回false以停止发布表单并留在页面上。例如使用 javascript 方法进行验证。

<form onsubmit="return isValidForm()" />

函数

function isValidForm(){
//// hit the server and see if you want to proceed with the POST
//// if fails return false so your form will not be posted and all of your values will remains the same, here before return false you can clear the form if needed.
}

如果您需要更多信息,请告诉我。

关于c# - 可以中止 MVC 操作并保持 View 不变(无需重写 View 的 GET "load code")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43765769/

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