有没有办法从ActionResult方法直接突破?我在我的表单中提交了一些手动验证提交控制器。如果验证失败,我想退出该方法。没有重定向,没有。只需将它停在它的轨道上然后退出即可。像休息或退出的东西。这是否存在,或者我是否必须返回Redirect()?
答案 0 :(得分:0)
只需使用此代码return View();
如果你想返回一些东西,你可以使用强类型并在视图中返回它,如下所示:
return view(model);
答案 1 :(得分:0)
MVC控制器上的公共方法和ActionResult的返回是HTTP请求/响应对话的抽象。因此,如果您的表单触发了请求,则需要进行响应。
也许你应该重新解释你的问题,你实际想要实现的目标。
假设您在手动验证失败后不想再次呈现页面,则可以使用以下选项:
您可以执行以异步方式传输表单数据的请求,从而无需使用@Ajax.BeginForm
方法重定向或呈现整页。
然后,您的控制器可以返回一些HTTP状态代码,指示您在客户端JavaScript代码中作出反应的验证失败(例如,400 Bad Request)。
在视图中呈现AJAX表单的示例:
@using (Ajax.BeginForm("YourAction", "YourController",
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.InsertAfter,
UpdateTargetId = "domElementId",
OnSuccess = "JavaScriptFunctionToCall",
OnFailure = "JavaScriptFunctionToCall"}))
{
@* Put your form inputs here *@
}