如何重定向到不同的视图?asp.net mvc未加载重新生成的视图

pieyvz9o  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(265)

我正在使用asp.NETMVC和angularjs。在我的当前页面中,我选择了一些项目,然后单击按钮,调用Angular 函数

var itemIds = [];
 //... somehow I get my items from the grids
var url = 'http://localhost/myController/CompareItems';
   $http.post(url, groupIds)
                .then(function (response) {
//                    var data = response.data;
                    //what to do here?
                }
                ).finally(function () {
                    vm.loading = false;
                });
}

c#mvc控制器如下所示:(mycontroller.cs)

public async Task<IActionResult> CompareItems([FromBody] int[] itemIds)
        {
            var model = new CompareModel
            {
              property1= ..,
              property2= ..,
              ......
              ......

            };
            return View("CompareItems",model);

        }

在$http.post调用中,调试器到达上述控制器,准备模型并返回视图。没有错误,但页面没有重定向。这里怎么了?
n、 在问这个问题之前,我已经搜索了很多其他的帖子。我发现很多人都在建议采取行动。我试过这个,但那不起作用。我的问题是,为什么要重定向到另一个操作。我已使用所需的参数值在预期的操作方法中。
事情很简单,只需从javascript收集所选项目并将其传递给mvc控制器操作。这是一个不同的观点。

ssm49v7z

ssm49v7z1#

你似乎遗漏了什么。
你可能想替换

return View("Login")

具有

return RedirectToAction("Login");

我只是举个例子,你可能想用你拥有的东西来代替它。

siv3szwd

siv3szwd2#

从另一个文件夹调用视图

return View("MyViewFolder/MyViewName.cshtml");

或者以模型作为对象

return View("MyViewFolder/MyViewName.cshtml", model);

还请检查是否已将方法返回类型设置为 async 这可能会阻止你,如果有一些正在进行的执行与等待。

相关问题