调用控制器方法,该方法通过Asp.net MVC视图页中的Ajax调用返回视图
我使用的是.Net core 2.1应用程序,内部for循环如何在不返回ajax响应的情况下触发控制器视图页面, 请参阅下面的代码 这是我的剃须刀观点调用控制器方法,该方法通过Asp.net MVC视图页中的Ajax调用返回视图,ajax,asp.net-core,razor,view,response,Ajax,Asp.net Core,Razor,View,Response,我使用的是.Net core 2.1应用程序,内部for循环如何在不返回ajax响应的情况下触发控制器视图页面, 请参阅下面的代码 这是我的剃须刀观点 @foreach(Model.CategoryList中的变量项) { } 功能选择类别(id){ $.ajax({ 键入:“POST”, url:'@url.Action(“产品列表”、“主页”), 数据类型:“json”, 数据:{parentId:id} }); } 公共操作结果ProductsList(int parentId) { Li
@foreach(Model.CategoryList中的变量项)
{
}
功能选择类别(id){
$.ajax({
键入:“POST”,
url:'@url.Action(“产品列表”、“主页”),
数据类型:“json”,
数据:{parentId:id}
});
}
公共操作结果ProductsList(int parentId)
{
List all=新列表();
如果(父ID>0)
all=\u context.pilcontegory.Where(x=>x.ParentId==ParentId).OrderBy(a=>a.ParentId.ToList();
其他的
all=_context.pilcegory.OrderBy(a=>a.ParentId.ToList();
返回视图(全部);
}
请有人帮我,萨克斯前进
如何在不返回ajax响应的情况下触发控制器视图页面
据我所知,我们无法在不返回ajax响应的情况下触发控制器视图页面。因为ajax会将请求发送到controller视图,而controller视图会将视图作为html响应返回给ajax
如果我们不处理响应,这意味着当前页面将不会更改
如果您只想将parentId传递给ProductsList方法,我建议您可以尝试使用window.location
,这将使此页面重定向到ProductsList视图,从而刷新整个页面
注意:如果我们使用ajax调用ProductsList,整个页面将不会刷新。如果我们使用window.location
,它将重定向到另一个页面或刷新整个页面
有关如何实现这一点的更多详细信息,您可以参考以下代码:
@section Scripts{
<script>
function SelectCategory(id) {
location.href = "/Home/ProductsList?parentId=" + id;
}
</script>
}
@节脚本{
功能选择类别(id){
location.href=“/Home/ProductsList?parentId=“+id;
}
}
如果您想使用ajax来实现这一点,我建议您可以尝试使用ajax成功方法来处理响应。通常,我们将在controller方法中返回部分视图,然后可以使用jquery将其添加到html页面中,而无需刷新页面
有关如何实现这一点的更多详细信息,您可以参考此
@section Scripts{
<script>
function SelectCategory(id) {
location.href = "/Home/ProductsList?parentId=" + id;
}
</script>
}