Javascript 在MVC4中,如何在控制器上进行post/调用和操作
我试图在更改日期选择器中的值时调用控制器上的操作。每当javascript运行时,“requestDate”参数为null。提前感谢您的专业知识 控制器Javascript 在MVC4中,如何在控制器上进行post/调用和操作,javascript,asp.net-mvc-4,Javascript,Asp.net Mvc 4,我试图在更改日期选择器中的值时调用控制器上的操作。每当javascript运行时,“requestDate”参数为null。提前感谢您的专业知识 控制器 [HttpPost] public ActionResult GetSummaryByDate(string requestDate) { return View(_acctSummary); } 看法 Javascript $('.datepicker').on('change', function (e) { $.post
[HttpPost]
public ActionResult GetSummaryByDate(string requestDate)
{
return View(_acctSummary);
}
看法
Javascript
$('.datepicker').on('change', function (e) {
$.post('AcctSummary/GetSummaryByDate', {'string':e.date});
});
确保发送的日期值与操作方法参数名称的参数名称相同。您还可以使用
$(this).val()
获取输入的当前值
您的操作方法参数名称是requestDate
。所以,让我们在发送数据时使用相同的方法
$('.datepicker').datepicker(); //enable date picker
$('.datepicker').on('change', function (e) {
$.post('AcctSummary/GetSummaryByDate', { requestDate : $(this).val()},function(res){
// do something with the response
console.log(res);
});
});
您也可以考虑使用<代码> URL.Action < /Cord> HTML帮助器方法来构建正确的相对URL到Action方法,而不是硬编码它。 在你看来
<script>
var summaryUrl = "@Url.Action("GetSummaryByDate","AcctSummary")";
// use this in your following js code
</script>
var summaryUrl=“@Url.Action(“GetSummaryByDate”、“AcctSummary”)”;
//在下面的js代码中使用它
是一篇关于将html助手方法生成的url传递给javascript代码的详细文章。这可能是正确的,也可能是错误的。如果使用日期选择器,则无需将输入设置为日期,事实上,这可能会导致日期选择器无法工作
e.value
也不一定包含日期。您确定e.date
有值吗?Shyju-当参数名称匹配时,它工作。非常感谢你。@Url.Action方法对我不起作用,因为在我的测试中,它只会响应按钮中的单击事件,而不会更改事件。我是个新手。我需要结束这个问题吗?这是感谢你的方式吗?Url.Action是一个服务器方法,它应该生成正确的Url。我不知道你所说的“只响应点击事件”是什么意思。顺便说一句,如果答案有帮助,你可以把它作为答案(勾选投票旁边的勾号),我想这是感谢帮助你的人的方式:)谢谢
$('.datepicker').datepicker(); //enable date picker
$('.datepicker').on('change', function (e) {
$.post('AcctSummary/GetSummaryByDate', { requestDate : $(this).val()},function(res){
// do something with the response
console.log(res);
});
});
<script>
var summaryUrl = "@Url.Action("GetSummaryByDate","AcctSummary")";
// use this in your following js code
</script>