当前位置: 首页 > 知识库问答 >
问题:

运行提交以外的操作

姬雪松
2023-03-14

我第一次认真使用MVC在umbraco建立了一个解决方案。我已经成功地使用BeginUmbracoForm呈现了一个表单,并提交了数据,效果非常好。

我的问题是,我想实现一个重置按钮,但由于我的数据处于会话中,我必须重置服务器端。

查看:

@using (Html.BeginUmbracoForm<Site1.Controllers.SearchCriteriaSurfaceController>("Search"))
{
    @*Form here*@
    @Html.ActionLink("Reset criterias", "Reset", "SearchCriteriaSurface", new {}, null)
    <input class="btn btn-primary" type="submit" value="Search now" />
}

控制器:

public class SearchCriteriaSurfaceController : SurfaceController
    {
        [HttpPost]
        public ActionResult Search(SearchParams model)
        {
            SearchParams.Params = model;
            ViewBag.HasSought = true;
            return CurrentUmbracoPage();
        }

        [HttpPost]
        public ActionResult Reset()
        {
            SearchParams.ResetParams();
            return CurrentUmbracoPage();
        }
    }

单击后,我会被重定向到/umbraco/Surface/SearchCriteriaSurface/Reset,这是一个找不到的资源。

你知道我在按下重置按钮后如何重新加载页面吗?

谢谢你的时间。

共有2个答案

隆选
2023-03-14

@Html。ActionLink呈现锚。锚不是表单,无法重定向到HttpPost操作。

删除HttpPost或为重置功能创建新表单。

勾岳
2023-03-14

你有两个选择(当然更多,但我不想再想了):

1您可以使用两个不同的按钮提交

<button type="submit" name="SubmitAction" value="Reset">Reset</button>
<button type="submit" name="SubmitAction" value="Submit">Submit</button>

在视图模型中,您只需要一个“SubmitAction”属性,在操作中可以测试该值。有关讨论的更多详细信息,请参见此处:如何在ASP中处理多个提交按钮。NET MVC框架?

2使用单独的表格

您可以完全拥有一个单独的表单(隐藏),并在单击“重置”锚时使用javascript触发表单的提交。

 类似资料:
  • 我们使用HiberNate作为JPA提供程序。当其中一个实体更新时,我需要对Quartz计划执行一些更新。目前,该代码是在该实体的更新方法中调用的。但是,Quartz更改只有在事务成功提交时才会生效。 我考虑过实现一个实体监听器,但是我只想在实体被特定方法修改时执行这些更新,并且我不确定JPA实体监听器是否支持依赖注入,我需要依赖注入来获取对Quartz调度器的引用。 有没有办法以编程方式附加活动

  • 我编写了一个类,它的一系列实例将从AsyncTask调用,它将从方法runReport()返回一个结果。它很好地创建了一个工作线程,但由于某种原因,它不执行可调用的call()方法。我做错了什么? null 我愿意用更好的方法来做这件事。我最初让AsyncTask进行这个调用,然后在它的线程上运行looper.loop(),但是我无法处理这些对象的队列,因为我需要在返回结果之前从侦听器调用loop

  • 一、作业提交 1.1 spark-submit Spark 所有模式均使用 spark-submit 命令提交作业,其格式如下: ./bin/spark-submit \ --class <main-class> \ # 应用程序主入口类 --master <master-url> \ # 集群的 Master Url --deploy-mode <deplo

  • Bellow是实现Runnable类的代码 得到的输出是:pool-1-thread-1…..0线程“main”java.lang.NullPointerException中的ExecutorServiceWithRunnableCallable.main(ExecutorSServiceWithRunnable.java:15) 以下是Callable的代码 **获得的输出为:**池-1-线程-

  • 问题内容: 我的页面上有一个表单。该表单包含一个文本框和一个提交按钮。 提交表单后,通过单击按钮或在文本框中按Enter,我要进行查找(在这种情况下,使用Bing Maps对邮政编码进行地理编码),然后像往常一样将表单提交到服务器。 我当前的方法是将提交事件的处理程序添加到一个表单中,然后在完成后调用Submit(),但是我无法使它正常工作,并且无法调试问题: 问题答案: 是你的朋友在这里。在完成

  • 问题内容: 我希望HTML表单提交后不执行任何操作。 这是不好的,因为它会导致页面重新加载。 基本上,我希望每当按下一个按钮或有人在键入数据后点击它时,都将调用Ajax函数。是的,我可以删除表单标签并添加,只需从按钮的onclick事件中调用该函数即可,但我也希望“命中进入”功能而又不至于让人头疼。 问题答案: 通过使用您在“提交”按钮中调用的JavaScript代码,可以停止提交表单。 基本上,