Ajax BeginForm - 在不同的控制器上调用操作

时间:2017-06-13 20:01:36

标签: ajax asp.net-mvc asp.net-ajax

我有以下情况:
- 区域A - >; PartialView A - >它使用Ajax.BeginForm在Controller A上调用操作“Save” - 区域B - >查看B

我在“View B”中插入了“PartialView A”,但Ajax.BeginForm表单操作调用的是Controller B操作而不是Controller A.

PartialView A:

        @using (Ajax.BeginForm(null, null, new AjaxOptions<br>
        {
            Url = Url.Action("Save", "ControllerA", null, Request.Url.Scheme),
            HttpMethod = "Post",
        }

控制器动作:

    [HttpPost]
    public ActionResult Save(Model model)
    {
    }

我的目标是重用/将局部视图插入到其他视图中,而无需向视图的控制器添加任何其他操作。如何解决这种情况?非常感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

为什么不只是简单地使用Ajax.BeginForm参数?

@using (Ajax.BeginForm("Save", "ControllerA", null, new AjaxOptions(){
 HttpMethod = "POST"
}, new { id = "someRandomForm" }))
{
   <div>
      <!-- your html code -->
   </div>
}

在控制器参数之后和null参数之前添加new AjaxOptions()以某种方式让我们点击我们想要的控制器,即ControllerA

答案 1 :(得分:1)

我无法使Ajax.BeginForm按我的意愿工作,因此我的解决方法是使用我需要调用的特定控制器/操作来使用JQuery ajax调用。

答案 2 :(得分:0)

你可以试试吗

autoRehydrate()