【发布时间】:2021-11-18 04:15:08
【问题描述】:
我正在开发一个需要将参数传递给操作的 asp.net mvc 应用程序。我通过 url 传递参数。 调用了该操作,但参数值已损坏。例如,如果我有一个字符串“这是通过参数传递的字符串的示例”,当它到达动作时它就像“这是”一样到达,即它只需要一部分。
我不知道这是不是因为这个字符串是 json 格式的,并且某些字符可能会导致这个信息中断。在分析中,我注意到当有一个“#”时,字符串被破坏,只有左边的内容被传递。我尝试使用替换将“#”替换为“$”,但这不起作用。从另一端到达的字符串与javascript生成的原始字符串不同。
async function GravarPlayList() {
var listaDeVideos = [];
for (var i = 0; i < listaDeIds.length; i++) {
var videos = await executeSearch(listaDeIds[i], maxResult);
for (var j = 0; j < videos.length; j++) {
listaDeVideos.push(videos[j]);
}
}
var jsonVideos = JSON.stringify(listaDeVideos);
var url = "/Playlist/CreatePlaylist?pListaIds=" + jsonVideos;
var novaUrl = url.replace('#', '$');
window.location.href = novaUrl;
}
[HttpGet]
public ActionResult CreatePlaylist(string pListaIds)
{
var pcustom = pListaIds.Replace('$', '#');
AppCache.Instance.VideoPesquisa = JsonConvert.DeserializeObject<IEnumerable<VideoItem>>(pcustom);
PlaylistModel playlistModel = new PlaylistModel() { VideosPesquisa = AppCache.Instance.VideoPesquisa };
return View(playlistModel);
}
参数传递的字符串示例
[
{
"kind":"youtube#playlistItem",
"etag":"vINbNEDWl2kOPwB7uZNfjznpqic",
"id":"UExCbG5LNmZFeXFSZ2daWmdZcFBNVXhkWTFDWWtadEFSUi41NkI0NEY2RDEwNTU3Q0M2",
"snippet":{
"publishedAt":"2018-06-24T07:24:38Z",
"channelId":"UCQYMhOMi_Cdj1CEAU-fv80A",
"title":"C Programming – Features & The First C Program",
"description":"Programming & Data Structures: C Programming – Features & The First C Program\\nTopics discussed:\\n1. Features of C programming.\\n2. High-level language Vs Low-level language.\\n3. Explanation of a…vi/Wslbb1UQUSc/hqdefault.jpg",
"width":480,
"height":360
},
"standard":{
"url":"https://i.ytimg.com/vi/Wslbb1UQUSc/sddefault.jpg",
"width":640,
"height":480
},
"maxres":{
"url":"https://i.ytimg.com/vi/Wslbb1UQUSc/maxresdefault.jpg",
"width":1280,
"height":720
}
},
"channelTitle":"Neso Academy",
"playlistId":"PLBlnK6fEyqRggZZgYpPMUxdY1CYkZtARR",
"position":168,
"resourceId":{
"kind":"youtube#video",
"videoId":"Wslbb1UQUSc"
},
"videoOwnerChannelTitle":"Neso Academy",
"videoOwnerChannelId":"UCQYMhOMi_Cdj1CEAU-fv80A"
}
}
]
当它到达时的字符串
[{"kind":"youtube"
我该如何解决这个问题?我不想使用 ajax,因为我需要重定向到另一个页面。
【问题讨论】:
标签: javascript c# asp.net-mvc-5