【问题标题】:Can I make jQuery read tag helpers of ASP.NET Core 2.1 ? Seems it's completely ignoring them我可以让 jQuery 读取 ASP.NET Core 2.1 的标签助手吗?似乎完全无视他们
【发布时间】: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


【解决方案1】:

这不起作用,标签助手运行服务器端为客户端生成 HTML。 JQuery 看不到这些 Tag Helpers。

如果您使用标签助手运行 HTML 并查看生成的代码,您会发现没有 asp- 属性,只有标签助手为您生成的 HTML。

因此,如果您想将 HTML 添加到页面,则需要手动进行。

有关标签助手的更多信息:

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/intro?view=aspnetcore-3.1

【讨论】:

    猜你喜欢
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 2023-04-03
    • 2018-10-01
    • 1970-01-01
    相关资源
    最近更新 更多