我的代码确实需要帮助。基本上,我通过ajax从视图调用动作,并且动作返回字符串-这部分工作良好。问题是动作返回会导致新的视图。我不想发生我希望该字符串结果返回到我从中调用操作的原始视图。我的脚本代码如下:
@using (Html.BeginForm(FormMethod.Post))
{
<div class="LDR">
<a class="Like" onmouseover="Like(@comment.Id)" onmouseout="ResetLike(@comment.Id)" onclick="LikeClick(@comment.Id)">
<img src="~/Content/Style/img/Like.png" id="Like_@comment.Id" />
@Html.Action("LikeComment", "Routes", new { id = comment.Id })
</a>
<a href="@Url.Action("AddDislikeComment", "Routes", new {id = comment.Id})" class="Dislike" onmouseover="Dislike(@comment.Id)" onmouseout="ResetDislike(@comment.Id)">
<img src="~/Content/Style/img/Dislike.png" id="Dislike_@comment.Id" />
@Html.Action("DislikeComment", "Routes", new { id = comment.Id })
</a>
<a href="@Url.Action("AddReportComment", "Routes", new {id = comment.Id})" class="Report" onmouseover="Report(@comment.Id)" onmouseout="ResetReport(@comment.Id)">
<img src="~/Content/Style/img/report.png" id="Report_@comment.Id" />
@Html.Action("ReportComment", "Routes", new { id = comment.Id })
</a>
</div>
}
....
function LikeClick(id) {
$.ajax({
async: false,
cache: false,
type: "GET",
url: "@(Url.Action("AddLC", "Routes"))",
dataType: "Json",
data: { "id": id },
success: function (message) {
alert(message);
}
});
}
动作如下:
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult AddLC(int id)
{
if (check == 0)
{
// ...
string message = "hi";
return Json(message, JsonRequestBehavior.AllowGet);
}
else
{
string message = "no";
return Json(message, JsonRequestBehavior.AllowGet);
}
}
我已经尝试返回JavaScript内容,但结果与此相同。如您所见,我只想显示带有自定义文本的基本警报消息,但是尝试并在网络上找到解决方案却失败了两个星期。
答案 0 :(得分:0)
所以我终于找到了问题所在,并且我认为这是我忘记的细节,因此在调试器中查看控制台后,我在这里发现了一个错误(“ Uncaught TypeError:无法读取属性'ajax' “),因此在添加jQuery后它开始工作。感谢大家的帮助,也很抱歉浪费您的时间。