Div*_*Dan 14 jquery asp.net-mvc-3
我创建了一个视图和一个控制器,控制器我想要返回一些搜索结果.我使用jquery调用控制器
<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");
}
});
});
Run Code Online (Sandbox Code Playgroud)
我的控制器看起来像这样
[HttpPost]
public ActionResult Search(string input)
{
var result = _db.Ingredients.Where(i => i.IngredientName == input);
return new JsonResult() {Data = new {name="Hello There"}};
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我不知道如何从我的jquery调用中获取varible进入控制器,我在控制器上放置了一个断点并且它被命中但是输入字符串始终为null.
我做错了什么?
Dar*_*rov 20
<input type="text" id="caption" />
@Html.ActionLink("Search", "Search", "Ingredients", null, new { id = "search" })
Run Code Online (Sandbox Code Playgroud)
然后在一个单独的javascript文件中不引人注意地AJAXify这个链接:
$(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;
});
});
Run Code Online (Sandbox Code Playgroud)
您的控制器操作可能如下所示:
[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" });
}
Run Code Online (Sandbox Code Playgroud)