2014-05-02 159 views
0

我正在使用MVC4。 我有一個名爲「美女」的控制器。它有兩個操作方法,即「Actio1」和「Action2」。 我的視圖名稱是Action1。 現在我認爲我有兩個div。點擊第一個div,通過AJAX,我在我的控制器中調用「Action1」方法。這工作正常,即我能夠擊中動作方法「動作1」。 當我點擊第二個div並嘗試通過AJAX調用第二個操作方法「Action2」時,我根本無法擊中Action2方法。無法使用Ajax調用控制器操作方法

控制器

public class BeautyController : Controller 
{ 
    [HttpPost] public JsonResult Action1(string option1) 
    { 
     return Json("true"); 
    }  

    [HttpPost] public JsonResult Action2(string option2) 
    { 
     return Json("true"); 
    } 
} 

阿賈克斯

function Question1(Answers) { 
    var url = '@Url.Action("Action1", "Beauty")'; 
    var Data = Answers; 

    if (url != null && url != undefined && Data != null && Data != undefined) { 
     $.ajax({ url: url, 
       dataType: "json", 
       type: "POST", 
       data: { 'option': Answers }, 
       contentType: 'application/json; charset=utf-8', 
       success: function (result) { 
        if (result != null && result != undefined && result == "true") 
        { 
        alert("Successfully Inserted!"); 
        } 
       }, 
       error: function (result) { 
        alert("error"); 
       } 
     }); 
    } 
} 

能否請你幫我找出問題並解決它。

謝謝, Priya。

+2

請出示一些代碼,普里亞 – Dumisani

+0

杜米薩尼·你好,我的控制器公共類BeautyController:控制器{ [HttpPost] 公共JsonResult措施1(字符串選項1) { 返回JSON( 「真」); } \t \t [HttpPost] 公共JsonResult措施2(字符串選項2) { 返回JSON( 「真」); } \t} \t和我的Ajax調用在下面的評論 – user3595751

+0

function Question1(Answers){var url ='@ Url.Action(「Action1」,「Beauty」)'; var data = Answers; if(url!= null && url!= undefined && Data!= null && Data!= undefined){$ .ajax({url:url,dataType:「json」,type:「POST」,data :{'option':Answers},contentType:'application/json; charset = utf-8',成功:function(result){if(result!= null && result!= undefined && result ==「true」){alert(「Successfully Inserted!」); }},error:function(result){alert(「error」); }});}} – user3595751

回答

0

你已硬編碼的URL到動作1

var url = '@Url.Action("Action1", "Beauty")'; 

如果你想要那個叫措施2,你需要將其更改爲:

var url = '@Url.Action("Action2", "Beauty")'; 

但是那將只能撥打行動2.

我建議你考慮在有問題的div上使用數據屬性。

因此,像這樣:

<div id="div1" data-url="@Url.Action("Action1", "Beauty")"> 
    //Div content here 
</div> 

<div id="div2" data-url="@Url.Action("Action2", "Beauty")"> 
    //Div content here 
</div> 

那麼無論你調用的函數從我猜測click事件。您將有一些jQuery的是這樣的:

var url = $(this).data("url"); 

,你會再穿過你的問題的功能,因此將成爲沿此線的東西:

function Question1(Answers, url) { 
    var Data = Answers; 
    if (url != null && url != undefined && Data != null && Data != undefined) { 
    $.ajax({ url: url, 
      dataType: "json", 
      type: "POST", 
      data: { 'option': Answers }, 
      contentType: 'application/json; charset=utf-8', 
      success: function (result) { 
       if (result != null && result != undefined && result == "true") 
       { 
       alert("Successfully Inserted!"); 
       } 
      }, 
      error: function (result) { 
       alert("error"); 
      } 
     }); 
     } 
    } 

Obiously這個答案是基於以上提供的信息和一些假設。

相關問題