C# jQuery添加的ASP.NET核心MVC链接无效
ASP NET核心MVC 3.1、jQuery v3.5.1、Bootstrap v4.1.3上的项目 案例-根据用户角色获取下拉列表项。从引导4下拉组件 工作原理:C# jQuery添加的ASP.NET核心MVC链接无效,c#,jquery,asp.net,C#,Jquery,Asp.net,ASP NET核心MVC 3.1、jQuery v3.5.1、Bootstrap v4.1.3上的项目 案例-根据用户角色获取下拉列表项。从引导4下拉组件 工作原理: 通过ajax从服务器获取下拉项 添加我认为这样渲染之后,您无法设置asp-*属性 相反,只需设置链接的href属性 <script> $(document).ready(function () { $('#dropdownMenuLink').on('click', function () {
我认为这样渲染之后,您无法设置asp-*属性 相反,只需设置链接的href属性
<script>
$(document).ready(function () {
$('#dropdownMenuLink').on('click', function () {
GetDropDownMenu();
});
});
function GetDropDownMenu() {
$.ajax({
type: "GET",
url: "/Menu/GetProfileMenu",
success: function (response) {
console.log(response);
var menuDiv = $(".dropdown-menu");
$.each(response, function (i, element) {
console.log(element);
var controllerAndAction = element.path.split('/');
//set href however you want
var aElement = $('<a>').attr({ 'href': "/" + controllerAndAction[0] + "/"+ controllerAndAction[1], 'class':"dropdown-item" });
aElement.text(element.text);
menuDiv.append(aElement);
});
}
});
}
</script>
$(文档).ready(函数(){
$('#dropdownMenuLink')。在('单击',函数(){
GetDropDownMenu();
});
});
函数GetDropDownMenu(){
$.ajax({
键入:“获取”,
url:“/Menu/GetProfileMenu”,
成功:功能(响应){
控制台日志(响应);
var menuDiv=$(“.dropdown menu”);
$。每个(响应、功能(i、元素){
控制台日志(元素);
var controllerAndAction=element.path.split('/');
//随意设置href
var AEElement=$('').attr({'href':“/”+controllerAndAction[0]+“/”+controllerAndAction[1],'class':“下拉项”});
aeelement.text(element.text);
menuDiv.append(元素);
});
}
});
}
我认为这样渲染之后,您无法设置asp-*属性
相反,只需设置链接的href属性
<script>
$(document).ready(function () {
$('#dropdownMenuLink').on('click', function () {
GetDropDownMenu();
});
});
function GetDropDownMenu() {
$.ajax({
type: "GET",
url: "/Menu/GetProfileMenu",
success: function (response) {
console.log(response);
var menuDiv = $(".dropdown-menu");
$.each(response, function (i, element) {
console.log(element);
var controllerAndAction = element.path.split('/');
//set href however you want
var aElement = $('<a>').attr({ 'href': "/" + controllerAndAction[0] + "/"+ controllerAndAction[1], 'class':"dropdown-item" });
aElement.text(element.text);
menuDiv.append(aElement);
});
}
});
}
</script>
$(文档).ready(函数(){
$('#dropdownMenuLink')。在('单击',函数(){
GetDropDownMenu();
});
});
函数GetDropDownMenu(){
$.ajax({
键入:“获取”,
url:“/Menu/GetProfileMenu”,
成功:功能(响应){
控制台日志(响应);
var menuDiv=$(“.dropdown menu”);
$。每个(响应、功能(i、元素){
控制台日志(元素);
var controllerAndAction=element.path.split('/');
//随意设置href
var AEElement=$('').attr({'href':“/”+controllerAndAction[0]+“/”+controllerAndAction[1],'class':“下拉项”});
aeelement.text(element.text);
menuDiv.append(元素);
});
}
});
}
似乎没有其他方法可以让它工作。谢谢你的回答@罗布斯密斯塔德来帮忙。ASP.NET核心MVC使用razor进行html呈现,这是在服务器端完成的。当javascript运行时,您已经在客户端,asp-*标记不再经过razor html呈现。似乎没有其他方法可以让它工作。谢谢你的回答@罗布斯密斯塔德来帮忙。ASP.NET核心MVC使用razor进行html呈现,这是在服务器端完成的。当javascript运行时,您已经在客户端,asp-*标记不再经过razor html呈现。
<script>
$(document).ready(function () {
$('#dropdownMenuLink').on('click', function () {
GetDropDownMenu();
});
});
function GetDropDownMenu() {
$.ajax({
type: "GET",
url: "/Menu/GetProfileMenu",
success: function (response) {
console.log(response);
var menuDiv = $(".dropdown-menu");
$.each(response, function (i, element) {
console.log(element);
var controllerAndAction = element.path.split('/');
//set href however you want
var aElement = $('<a>').attr({ 'href': "/" + controllerAndAction[0] + "/"+ controllerAndAction[1], 'class':"dropdown-item" });
aElement.text(element.text);
menuDiv.append(aElement);
});
}
});
}
</script>