我在MVC4工作。 我有一个名为“Beauty”的控制器。它有两种动作方法,即“Actio1”和“Action2”。 我的视图名称是Action1。 现在在我看来我有两个div。点击第一个div,通过AJAX我在我的控制器中调用“Action1”方法。这工作正常,即我能够点击动作方法“Action1”。 当我点击第二个div并尝试通过AJAX调用第二个动作方法“Action2”时,我根本无法点击Action2方法。
控制器
public class BeautyController : Controller
{
[HttpPost] public JsonResult Action1(string option1)
{
return Json("true");
}
[HttpPost] public JsonResult Action2(string option2)
{
return Json("true");
}
}
的Ajax
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");
}
});
}
}
您能否帮我确定问题并解决问题。
谢谢, 普里亚。
答案 0 :(得分:0)
您已将网址硬编码为action1
var url = '@Url.Action("Action1", "Beauty")';
如果您想要调用Action2,则需要将其更改为:
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>
然后,无论你在哪里调用函数,我都在猜一个点击事件。你会有这样的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");
}
});
}
}
很明显,这个答案是基于您在上面提供的信息和一些假设。