c# - 如何异步更新 ASP.NET MVC 分部 View ?

标签 c# ajax asp.net-mvc

我正在尝试根据用户从下拉列表中的选择异步更新数据表。使用我读过的东西 here在其他地方,我一直在尝试使用局部 View 来完成此操作。我的代码看起来像这样:

首页.cshtml:

<body>
<div id="main-region">       
    <div class="mySelector">
        <label class="dropdown-label">Filter: </label>
        @Html.DropDownListFor(m => m.SelectedStatus, Html.GetEnumSelectList(typeof(MyEnum)),
       new { @id = "mySelector" })
    </div>
    <div id="myPartialView">
        @Html.Partial("_Summary", Model)
    </div>
</div>
<script type="text/javascript" src="~/lib/jquery/dist/jquery.min.js"></script>
<script type="text/javascript">
    $('#mySelector').change(function () {
        var newSelectionID = $(this).val();
        $('#myPartialView').load('@Url.Action("Filter", "Home")') //syntax for including newSelectionID?
    });

</script>

_Summary.cshtml 只是一个简单的表格。

HomeController.cs:

    [HttpGet]
    public IActionResult Filter(string statusID)
    {
      var modelData = mService.GetData(statusID);
        return PartialView("_Summary", model);
    }

我坚持两件事:

  • 我什至无法在服务器端访问我的 Filter 方法。
  • 我不确定如何传回用户选择的值。

我显然遗漏了一些东西。谁能帮我吗?我正在使用 asp.net 核心。

非常感谢。

最佳答案

您的代码可能会崩溃,因为您没有将 statusID 参数传递给您的方法,我看到您正在使用参数值来获取局部 View 所需的模型数据。如果代码崩溃,服务器将在响应中返回一个 500 内部错误状态代码,并且 div (myPartialView) 将不会更新内容。

由于您的操作方法是用 GET 属性修饰的,因此您可以在查询字符串中传递值。

这应该可行

$(function() {

    $('#mySelector').change(function() {
        var v = $(this).val();
        $('#myPartialView').load('@Url.Action("FilterOnStatus", "Home")?statusID=' + v);
    });

});

关于c# - 如何异步更新 ASP.NET MVC 分部 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47381160/

相关文章:

c# - 防止用户在C#中向字符串变量输入整数

c# - C# Parent 和 Child 中的 MDI 窗体

javascript - JS 和 AJAX Uncaught ReferenceError

javascript - 我的jquery ajax代码无故刷新页面

asp.net-mvc - 如何在 ASP.Net MVC 中读取文件的内容?

c# - IdentityServer4 调试消息 AuthenticationScheme : "idsrv" was not authenticated

javascript - JSON 对象不会使用 ajax 传输到 js 数组

c# - 如何将模型从 View 传递到 Controller

asp.net-mvc - 如何在 MVC 5 中创建 Multi-Tenancy View 结构

c# - 编写 XML 最快的方法是什么