2014-05-02 200 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这个答案是基于以上提供的信息和一些假设。

相关问题