【发布时间】:2016-10-10 08:27:07
【问题描述】:
所以,我有这个 AJAX 调用,我想做的是让控制器将字符串作为 JSON 对象返回到我的 ajax 调用所在的视图。现在事情就是这样。我不知道该怎么做,哪个班级可以帮助我做到这一点。我尝试过的一切都不起作用。我的问题是,当我使用 $.post 方法时,如何让 AJAX 从控制器“抓取”数据?
由于人们对我的 Javascript 发表评论,我不介意,我稍后会修复它。问题是
如何从 MVC 中的控制器返回任何我想要的东西?控制器是我需要帮助的地方
这是我的电话:
<script>
$(document).ready(function () {
alert("document ready");
// Attach a submit handler to the form
$("#searchForm").submit(function (event) {
alert("submitsearchForm");
//event.preventDefault();
// Get some values from elements on the page:
var $form = $(this),
query2 = $form.find("input[id='query']").val(),
url = "/umbraco/Surface/SearchDictionarySurface/HandleDictionarySearching/";
alert("query2" + query2);
// Send the data using post
var posting = $.post(url, { query: query2 });
alert(url);
//Put the results in a div
posting.done(function (query2) {
var content = //bla bla bla;
$("#result").empty().append(content);
alert(query2);
});
});
});
</script>
另外,我正在使用 Umbraco。这就是表面控制器的原因:
using MyUmbraco.Models;
using System.Web.Mvc;
using Umbraco.Web.Mvc;
namespace MyUmbraco.Controllers
{
public class SearchDictionarySurfaceController : SurfaceController
{
// GET: SearchDictionarySurface
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult HandleDictionarySearching(string query)
{
if (!string.IsNullOrEmpty(query))
{
var query2 = Json.parse(query);
//return Json object????
//I NEED HELP HERE
}
else
{
return Json(new
{
redirectUrl = Url.Action("Index", "Home"),
isRedirect = true
});
}
}
}
}
【问题讨论】:
-
我不知道你的框架,但是要让 Ajax 接收响应,你必须输出 Json 而不是返回它。
-
你想用这个声明做什么
$(query2).find("#content")?。query2你的回复是Json格式吗? -
伙计们,我之前提到过。忽略这部分,我稍后会解决这个问题,我需要帮助的是设置控制器。这只是一个测试,那行代码,所以我会说。 '我现在不知道,因为我还没有达到那个地步'。
-
@Justinas 如何在控制器中执行此操作?这就是我要问的。
-
您的帖子是否返回任何内容?例如,当它提醒 query2 作为 done 调用的一部分时,它会说什么?在您的 chrome 检查器中,在网络中,对帖子的调用是否返回 200 或其他状态?
标签: javascript jquery model-view-controller umbraco