Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在MVC4中,如何在控制器上进行post/调用和操作_Javascript_Asp.net Mvc 4 - Fatal编程技术网

Javascript 在MVC4中,如何在控制器上进行post/调用和操作

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

我试图在更改日期选择器中的值时调用控制器上的操作。每当javascript运行时,“requestDate”参数为null。提前感谢您的专业知识

控制器

[HttpPost]
public ActionResult GetSummaryByDate(string requestDate)
{
    return View(_acctSummary);
}
看法

Javascript

$('.datepicker').on('change', function (e) {
    $.post('AcctSummary/GetSummaryByDate', {'string':e.date});
});
  • 将输入类型设置为date(当前已将其设置为text)
  • 将“value”属性(例如value)传递给控制器

  • 确保发送的日期值与操作方法参数名称的参数名称相同。您还可以使用
    $(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>