2017-06-13 37 views
0

我有以下情形:
- A區 - > PartialView A - >它使用Ajax.BeginForm呼籲行動 「保存」 控制器A
- B區 - >視圖B阿賈克斯BeginForm - 不同的控制器上呼籲採取行動

我插入 「PartialView A」 到 「視圖B」,但Ajax.BeginForm形式行動呼籲控制器B的行動,而不是控制器A.

PartialView答:

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

控制器A動作:

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

我的目標是重用/插入部分視圖到其它視圖,而不必任何其他操作添加到視圖的控制器。如何解決這種情況?非常感謝您的幫助。

+0

嘗試改變'Url.Action(「保存」,「ControllerA」,空, Request.Url.Scheme)'到'Url.Action(「Save」,「ControllerA」,new {area =「AreaA」},Request.Url.Scheme)''。 – wablab

+0

感謝Wablab的建議,但沒有運氣。 – devdev

+0

你解決了問題嗎 – hasan

回答

0

你可以試試這個

@using (Ajax.BeginForm("Save", "ControllerA", new AjaxOptions() { HttpMethod = "POST" })) 
+0

這實際上是我第一次嘗試。沒有運氣。 – devdev

+0

您可以將控制器添加到問題中 – hasan

+0

儘管此代碼可能會回答問題,但提供有關如何解決問題和/或爲何解決問題的其他上下文會提高答案的長期價值。 – Badacadabra

1

我不能讓Ajax.BeginForm工作,我想,所以我的解決方法是使用特定的控制器/動作我需要調用使用jQuery AJAX調用。

1

爲什麼不簡單地使用Ajax.BeginForm參數?

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

控制器參數之後和new AjaxOptions()參數前添加null以某種方式讓我們打我們想要的控制器,這是ControllerA