一个控制器中有两个HttpPost过滤器。一个用于Html.BeginForm,另一个用于ajax.BeginForm,它们都在表单提交

时间:2015-12-08 20:44:52

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

我正在尝试为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方法..如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

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

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

   // [HttpPost]
    public JsonResult JSONMN(string PN = null)