Могу ли я заставить jQuery прочитать теговые помощники ASP. NET Core 2.1? Кажется, это полностью игнорирует их - PullRequest
0 голосов
/ 25 января 2020

Может ли jQuery прочитать asp - для помощников тега и 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();
}

1 Ответ

0 голосов
/ 25 января 2020

Это не сработает, помощники по тегам запускают на стороне сервера для генерации HTML для клиента. JQuery не может видеть эти помощники тегов.

Если вы запустите HTML с помощниками тегов и посмотрите на сгенерированный код, вы увидите, что нет атрибутов asp-, только HTML, который тег Помощники созданы для вас.

Поэтому, если вы хотите добавить HTML на страницу, вам нужно будет сделать это вручную вместо этого.

Для получения дополнительной информации о помощниках тегов:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...