gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:50:52 25 4
gpt4 key购买 nike

我正在尝试根据用户从下拉列表中的选择异步更新数据表。使用我读过的东西 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com