【问题标题】:Two HttpPost filters in one controller. One for Html.BeginForm other for ajax.BeginForm both called on form submit一个控制器中有两个 HttpPost 过滤器。一个用于 Html.BeginForm 另一个用于 ajax.BeginForm 都调用表单提交
【发布时间】:2015-12-09 05:18:41
【问题描述】:

我正在尝试向 asp.net mvc4 应用程序添加增强功能。我通过将更改添加到局部视图来抽象化我的更改,并且我想利用 ajax 向用户显示更改而无需刷新页面。页面上已经有一个使用 html 帮助器方法创建的表单。

所以在控制器中的方法是:

    [HttpGet]
    public PartialViewResult AMN()
    {
        string remarks = " ";
        return PartialView(((object)remarks));
    }

    [HttpPost]
    public JsonResult AMN(string PN= null)
    {
      ...return Json(remarks);

    [HttpGet]
    public ActionResult PS()
    {
        ...return View(pS);

    [HttpPost]
    public ActionResult PS(PSModel pS)
    {    
        ...return View(pS);

我的 Ajax 调用和 JSON 工作正常,页面加载正确,但是当提交按钮用于 html.beginform 并且页面刷新时,它会调用两个 post 方法。如何防止这种情况发生?

【问题讨论】:

    标签: ajax forms asp.net-mvc-4 post


    【解决方案1】:

    没关系,我通过更改部分视图的 get 方法的名称和部分表单的 post 方法的名称来修复它。

           // [HttpGet]
        public PartialViewResult AMN()
        {
            string remarks = " ";
            return PartialView(((object)remarks));
        }
    
       // [HttpPost]
        public JsonResult JSONMN(string PN = null)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多