我需要将搜索字符串传递给操作方法。
查看:
<div>
<input id="search" type="text" placeholder="Search">
<div id="submitButton"></div>
</div>
<script type="text/javascript">
$("#submitButton").click(function () {
var options = {};
options.url = "/Section/Search";
options.type = "POST";
options.data = JSON.stringify({ t: $("#search").val() });
options.contentType = "application/json";
options.dataType = "json";
$.ajax(options);
});
</script>
我需要调用此操作方法并使用搜索字符串。
控制器: 部分/搜索
[HttpGet]
public ActionResult Search(string SearchResults)
{
using (var db = new LambertonEntities())
{
var article = db.News.ToList();
return View(article);
}
}
答案 0 :(得分:2)
由于您拥有ajax POST
方法和HttpGet
Controller
,但仍然无法获取您的代码。
如果您想传递参数并使用POST
,您可以像以前一样传递数据参数:
$("#submitButton").click(function () {
var options = {};
options.url = "/Section/Search";
options.type = "POST";
options.data = { SearchResults: $("#search").val() };
options.contentType = "application/json";
options.dataType = "json";
$.ajax(options);
});
但是如果您想使用GET
,我建议您使用$.param()这样的方法:
$("#submitButton").click(function () {
var options = {};
options.url = "/Section/Search?" + $.param({ SearchResults: $("#search").val() });
options.type = "GET";
options.contentType = "application/json";
options.dataType = "json";
$.ajax(options);
});
使用$.param()
的最佳优势如果您不需要自己创建url param字符串,无论您的对象有多复杂。
如果您想重定向到此操作,则不应使用ajax。你的Controller方法应该允许GET。
$("#submitButton").click(function () {
window.location.href = "/Section/Search?" + $.param({ SearchResults: $("#search").val() });
});
这会将您重定向到同一窗口中的搜索页面。
$("#submitButton").click(function () {
window.open("/Section/Search?" + $.param({ SearchResults: $("#search").val() }));
});
这会将您重定向到新窗口中的搜索页面。 For more info
答案 1 :(得分:0)
试试这个:
JS
$("#submitButton").click(function () {
var options = {};
options.url = "/Section/Search";
options.type = "POST";
options.data = JSON.stringify({ searchResults: $("#search").val() });
options.contentType = "application/json";
options.dataType = "json";
$.ajax(options);
});
服务器
[HttpPost]
public ActionResult Search(string SearchResults)
{
using (var db = new LambertonEntities())
{
var article = db.News.ToList();
return View(article);
}
}