我正在使用 ASP.NET 核心开发 Web 应用程序,但遇到了一些问题。 当我到达一个控制器时,我将我的应用程序重定向到另一个打开页面的控制器。但是,当我到达返回应该打开的视图的控制器时,没有任何反应并且页面不会加载。请求到达控制器,控制器返回视图但页面没有打开。奇怪的是,当为页面创建菜单选项时,一切正常,页面被加载。 Ajax 代码调用第一个控制器,接收信息然后调用另一个控制器打开另一个视图。 Ajax 代码是否会导致此问题?
Ajax 代码
<script>
var listaDeIds = [];
function Mostrar() {
var videos = document.querySelectorAll('#video');
var count = 0;
var lista = [];
for (var i = 0; i < videos.length; i++) {
var videoID = videos.item(i).getattribute("name");
const shadow = videos.item(i).shadowRoot;
const childNodes = Array.from(shadow.childNodes);
childNodes.forEach(childNode => {
if (childNode.nodename === "DIV") {
const shadowChilds = Array.from(childNode.childNodes);
shadowChilds.forEach(shadowShild => {
if (shadowShild.nodename === "DIV") {
const shadowChildsInternas = Array.from(shadowShild.childNodes);
shadowChildsInternas.forEach(interna => {
if (interna.nodename === "INPUT") {
if (interna.checked === true) {
lista[count] = videoID;
count = count + 1;
}
}
});
}
});
}
});
}
if (lista.length > 0) {
document.getElementById("btnplaylist").style.display = 'block';
} else {
document.getElementById("btnplaylist").style.display = 'none';
}
listaDeIds = lista;
}
$('#Playlist').click(function () {
//var url = "/Playlist/RecebeListaDeIds";
var url = "/VideoSearch/PegarListaDeIds"
var lista = listaDeIds;
$.post(url,{ pListaDeIds: lista },function (data) {
$("#msg").html(data);
});
});
</script>
从屏幕接收数据并调用另一个控制器的控制器 1
[HttpPost]
public actionResult PegarListaDeIds(string[] pListaDeIds)
{
if(AppUser.User != null)
{
var appCache = AppCache.Instance;
appCache.VideoId.InserirNoCache(pListaDeIds);
return RedirectToaction("CreatePlaylist","Playlist");
}
else
{
return BadRequest("Usuário não está logado");
}
}
控制器 2 被控制器 1 调用。这个控制器在被另一个控制器调用时不会加载视图。
[HttpGet]
public actionResult CreatePlaylist()
{
return View();
}