在阅读了一些信息后,我认为这应该有效。调用JS函数并且jQuery动画正在旋转,但操作未发布到。我也希望从文本输入提供startDate和endDate,但现在甚至硬编码都不起作用。感谢大家!
控制器:
public class NewsController : Controller
{
[HttpPost]
public ActionResult Search(string lang, string pageNumber, string startDate, string endDate, string search)
{
}
}
查看:
@using (Html.BeginForm())
{
<a href="#" id="go_button">...</a>
}
<script type="text/javascript">
$('#go_button').click(function () {
$.post("/News/Search", { startDate: 'start', endDate: 'end'});
});
答案 0 :(得分:0)
确保脚本位于DOM中的锚点之后或包含在document.ready
中:
$(function() {
$('#go_button').click(function () {
var url = '@Url.Action("Search", "News")';
$.post(url, { startDate: 'start', endDate: 'end' }, function() {
alert('success');
});
return false;
});
});
这应该有用,至少应该调用你的动作。这个动作做了什么,无论是抛出异常还是其他东西都是另一回事,但至少你应该进入它并正确分配startDate
和endDate
参数:
public class NewsController : Controller
{
[HttpPost]
public ActionResult Search(string lang, string pageNumber, string startDate, string endDate, string search)
{
return Json(new { success = true });
}
}
答案 1 :(得分:0)
$ .post只会将请求发布到服务器 - 它不会自动用您的视图更新您的页面。
您需要包含一个成功函数,然后使用该函数将View插入DOM。
e.g。
在jquery
中尝试这样的事情$(function() {
$('#go_button').click(function () {
var url = '@Url.Action("Search", "News")';
$.post(url, { startDate: 'start', endDate: 'end' }, function() {
$('#result').html(data);
});
return false;
});
});
这将发布到您的操作并将返回的视图放在ID为“result”的元素中。
如果您没有要包含布局,则应该让您的操作返回PartialView。