【发布时间】:2020-05-11 16:34:28
【问题描述】:
jQuery 可以读取 asp-for 标签助手和asp-action 吗?从我所见,似乎只是忽略了他们,我该如何解决这个问题或解决它? (我不能改变 jQuery 方法)。
伙计们,我能做什么?有没有办法做我想做的事:显示这些元素,同时在数据库中保存一些值(注意我必须附加多个元素)?
$('#results').append('<form method="post"><div class="item col-xs-4 col-lg-4">'
+ '<div class="thumbnail">'
+ '<iframe width="100%" height="200px" allowfullscreen src="https://www.youtube.com/embed/' + id + '"></iframe>'
+ '<div class="caption">'
+ '<p class=" group inner list-group-item-text" style="overflow:hidden;text-overflow:elipsis;white-space:nowrap;">' + vidTitle + '</p>'
+ '<div class="row">'
+ '<input type="text" value="' + id + '" asp-for="Input.vLink" hidden />'
+ '<input type="text" value="' + vidTitle + '" asp-for="Input.vLink" hidden />'
+ '<div class="col-xs-12 col-md-6">'
+ '<button asp-action="AddToPlaylist" type="submit" asp-route-vLink="' + id + '"asp-route-vTit="' + vidTitle + '" id="' + vidTitle + '" data-key="' + id + '" class="btn btn-success" onclick="AddToPlaylist()">Add to Playlist</button>'
+ '</div></div></div></div></div></form>');
})
$('#playlist').append('<form method="post"><div">'
+ '<input type="text" value="' + id + '" asp-for="Input.vLink" hidden />'
+ '<input type="text" value="' + vidTitle + '" asp-for="Input.vLink" hidden />'
+ '<div class="list-inline"><li style="width:89%;overflow:hidden;text-overflow:elipsis;white-space:nowrap;list-style-type:none;">' +
VideoTitulli + ' ' + id
+'</li>'+' '+'<button value="' + id + '" style="border-radius:10px" class="fas fa-times" asp-action="RemoveFromPlaylist" asp-route-vLink="' + id + '"asp-route-vTit="' + vidTitle + '" onclick="RemoveFromPlaylist()"></button></div><hr class="hrC" /></div</form>')
.net 核心操作
public async Task AddToPlaylist(string userId)
{
var userplaylist = new UserPlaylist() { ResultTitles = Input.vTit,ResultLinks = Input.vLink, ApplicationUserId = userId};
_context.UPlaylist.AddAsync(userplaylist);
await _context.SaveChangesAsync();
}
public async Task RemoveFromPlaylist(string userId)
{
var userplaylit = new UserPlaylist() { ResultTitles = Input.vTit, ResultLinks = Input.vLink, ApplicationUserId = userId };
_context.UPlaylist.Remove(userplaylit);
await _context.SaveChangesAsync();
}
【问题讨论】:
-
您误解了客户端代码和服务器端代码之间的区别。像
asp-action="AddToPlaylist"这样的东西对客户端没有任何意义。它们在服务器端用于生成发送到客户端的结果标记/代码。打开浏览器的调试工具,观察页面上的实际内容。
标签: c# jquery asp.net asp.net-core razor