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

RPA*_*Dev 2 ajax asp.net-mvc asp.net-ajax

我有以下场景:
- 区域 A -> PartialView A -> 它在控制器 A 上使用 Ajax.BeginForm 调用操作“保存”
- 区域 B -> 视图 B

我将“PartialView A”插入到“View B”中,但 Ajax.BeginForm 表单操作正在调用控制器 B 操作而不是控制器 A。

部分视图 A:

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

控制器A动作:

    [HttpPost]
    public ActionResult Save(Model model)
    {
    }
Run Code Online (Sandbox Code Playgroud)

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

小智 5

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

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

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