Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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
如何调用post-actionresponse,将所选下拉项作为参数从视图中的javascript传递_Javascript_C#_Asp.net_Asp.net Mvc_Razor - Fatal编程技术网

如何调用post-actionresponse,将所选下拉项作为参数从视图中的javascript传递

如何调用post-actionresponse,将所选下拉项作为参数从视图中的javascript传递,javascript,c#,asp.net,asp.net-mvc,razor,Javascript,C#,Asp.net,Asp.net Mvc,Razor,如何在asp.net、razor、mvc中的视图中调用PostActionResponse,将所选下拉项作为参数传递给javascript 基本上,我相信您可以从下面的代码中看出,我正在尝试完成上述任务,但没有取得多大成功。我应该改变什么才能成功?谢谢 <script type="text/javascript"> $(function() { $("#mydropdown").change(function() { var selectedItem = $(

如何在asp.net、razor、mvc中的视图中调用PostActionResponse,将所选下拉项作为参数传递给javascript

基本上,我相信您可以从下面的代码中看出,我正在尝试完成上述任务,但没有取得多大成功。我应该改变什么才能成功?谢谢

<script type="text/javascript">
$(function() {
    $("#mydropdown").change(function() {
        var selectedItem = $(this).val();
        $.ajax({
            url: '@Url.Action("DoStuff", "MainController")',
            type: "Post",
            data: { name: selectedItem },
            success: function () {
                alert('success');
            }
        });

    });
});
到目前为止,更改下拉列表时不会发生任何事情。虽然如果我删除ajax函数,并用警报替换它。此时将显示此情况下的警报

此时,actionresult和controller看起来似乎都不存在于项目中(红色),即使它们都存在且都按规定命名。


c#似乎表明动作或控制器实际上都不存在,给出了错误“无法解析动作”或“无法解析控制器”

您必须将参数名称更改为SelectedItem,以匹配动作方法的参数,并在传递之前将json数据字符串化

JSON.stringify({ SelectedItem :selectedItem })
请参阅以供参考。


<html>
<head>
    <meta charset="utf-8">

    <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.9.1.js"></script>
    <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

</head>
<body>

    <select id="mydropdown">
        <option  value="a">a</option>
        <option  value="b">b</option>
        <option  value="c">c</option>
        <option  value="d">d</option>
    </select>



        <script type="text/javascript">
      $(function() {
          $("#mydropdown").change(function() {
              var selectedItem = $(this).val();
              $.ajax({
                  url: '@Url.Action("DoStuff", "MainController")',
                  type: "Post",
                  data: { name: selectedItem },
                  success: function () {
                      alert('success');
                  }
              });

          });
      });
    </script>

</body>
</html>






    [HttpPost]
    public ActionResult DoStuff(string name)
    {
    CIModel CIModellList = CILHelper.ImportFunc(name);
    return View(CIModellList);
    }
A. B C D $(函数(){ $(“#mydropdown”).change(函数(){ var selectedItem=$(this.val(); $.ajax({ url:'@url.Action(“DoStuff”,“MainController”), 类型:“Post”, 数据:{name:selectedItem}, 成功:函数(){ 警惕(“成功”); } }); }); }); [HttpPost] 公共操作结果DoStuff(字符串名称) { CIModel CIModellList=CILHelper.ImportFunc(名称); 返回视图(CIModellList); }
如果您确定“什么也没发生”,则您的
$.ajax
调用没有失败回调,因此您需要进行调试以查看它是否失败。
<html>
<head>
    <meta charset="utf-8">

    <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.9.1.js"></script>
    <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

</head>
<body>

    <select id="mydropdown">
        <option  value="a">a</option>
        <option  value="b">b</option>
        <option  value="c">c</option>
        <option  value="d">d</option>
    </select>



        <script type="text/javascript">
      $(function() {
          $("#mydropdown").change(function() {
              var selectedItem = $(this).val();
              $.ajax({
                  url: '@Url.Action("DoStuff", "MainController")',
                  type: "Post",
                  data: { name: selectedItem },
                  success: function () {
                      alert('success');
                  }
              });

          });
      });
    </script>

</body>
</html>






    [HttpPost]
    public ActionResult DoStuff(string name)
    {
    CIModel CIModellList = CILHelper.ImportFunc(name);
    return View(CIModellList);
    }