gpt4 book ai didi

jquery - 使用 jquery ajax 将参数传递给 Controller

转载 作者:行者123 更新时间:2023-12-03 22:04:14 25 4
gpt4 key购买 nike

我已经创建了一个 View 和一个 Controller ,我想要该 Controller 返回一些搜索结果。我正在使用 jquery 调用 Controller

   <input type="text" id="caption" />
<a href="#" id="search">Search</a>
<script>
$("#search").click(function () {
alert('called');
var p = { Data: $('#search').val() };
$.ajax({
url: '/Ingredients/Search',
type: "POST",
data: JSON.stringify(p),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data);
},
error: function () {
alert("error");
}
});
});

我的 Controller 看起来像这样

 [HttpPost]
public ActionResult Search(string input)
{
var result = _db.Ingredients.Where(i => i.IngredientName == input);

return new JsonResult() {Data = new {name="Hello There"}};
}

我的问题是我不确定如何从 jquery 调用中获取变量到 Controller 中,我在 Controller 上放置了一个断点并且它被击中,但是输入字符串始终为空。

我做错了什么?

最佳答案

<input type="text" id="caption" />
@Html.ActionLink("Search", "Search", "Ingredients", null, new { id = "search" })

然后在单独的 javascript 文件中以不显眼的方式 AJAX 化此链接:

$(function() {
$("#search").click(function () {
$.ajax({
url: this.href,
type: 'POST',
data: { input: $('#caption').val() },
success: function (result) {
alert(result.name);
},
error: function () {
alert("error");
}
});
return false;
});
});

您的 Controller 操作可能如下所示:

[HttpPost]
public ActionResult Search(string input)
{
var result = _db.Ingredients.Where(i => i.IngredientName == input);
// TODO: Use the result variable in the anonymous object
// that is sent as JSON to the client
return Json(new { name = "Hello There" });
}

关于jquery - 使用 jquery ajax 将参数传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4977858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com