【问题标题】:pass dropdown list value from view to controller and resend The same view in asp.net core 3.1?将下拉列表值从视图传递到控制器并重新发送 asp.net core 3.1 中的相同视图?
【发布时间】:2021-10-16 02:02:46
【问题描述】:

查看:

  <select id="count" name="count" class="form-control">
       <option value="0">Choose</option>
       <option value="2">two</option>
       <option value="3">three</option>
       <option value="4">four</option>
       <option value="5">five</option>                                    
  </select>

jquery:

 <script>  
    $("#count").change(function () {
        let count = $("#count :selected").val();
        if (count != 0) {
            $.getJSON("/AdminPanel/Poll/Create/" + count);
        }
    });
</script>

控制器:

 public IActionResult Create(int id)
    {
        ViewBag.Count = id;

        return View();
    }

如何将值作为 Viewbag 发送到控制器中的视图?

我想在循环中使用...在剃须刀页面中

【问题讨论】:

    标签: javascript asp.net ajax asp.net-mvc asp.net-core


    【解决方案1】:

    你不能。我建议使用单独的操作方法:

    public IActionResult Create(int id)
    {
        return Json(new { count = id });
    }
    

    然后在GET请求中:

    $("#count").change(function () {
        let count = $("#count :selected").val();
        if (count != 0) {
            $.getJSON("/AdminPanel/Poll/Create/" + count, function(d) {
                 $("#count").val(d.count);
            });
        }
    });
    

    它本质上是通过更新服务器和刷新客户端上的 UI 来同步两个结果。在 JavaScript 回调中无法识别 ViewBag,但您可以返回任何您想要的内容,然后在 JS 中进行更新。例如,您可以返回一个 PartialView 来替换 HTML 页面的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多