2 回答

TA贡献1801条经验 获得超8个赞
我在这里发布解决方案;这比在评论中要好。
最初我使用这个href:
href="@Url.Page("Area/Details/" + @Model.wItem.GUID, "ShowDetails")">
使用 Url.Page 因为我使用的是 Razor 而不是 MVC。阅读 MS 文档(https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas?view=aspnetcore-3.0)我注意到我正在使用这些区域,所以正确的href应该是:
href='@Url.Page("Details", "ShowDetails", new { area = "Area", position = item.Position, GUID = @Model.wItem.GUID })'
详细信息:是我的页面的名称
ShowDetails:是我的 GET 处理程序的名称
区域:是我的区域的名称
位置和GUID:是我的 GET 处理程序的参数
结果 href URL 将如下所示:
/en/Area/Details/45646546-1213-156416-45646-5464666?position=1&handler=ShowDetails
调用我的处理程序:
public async Task<IActionResult> OnGetShowDetailsAsync(string GUID, string position)
{
...
}
希望这可以节省其他时间。

TA贡献1796条经验 获得超7个赞
您可以使用该href属性来执行此操作。你说它对你不起作用,但你还没有展示你尝试过的东西。使用attr()将为您提供所需的值。您似乎还试图在不太正确的 GET 请求中发送 JSON,尤其是当您需要的数据已经在hrefURL 中时。
另请注意,您应避免使用onclick和其他事件属性,因为它们已过时。当您使用 jQuery 时,您可以轻松地不显眼地附加您的事件处理程序。
最后,async: false这是非常糟糕的做法,不应使用。您在任何情况下都不需要它,因为您已经实现了该done()方法。说了这么多,试试这个:
<a class="nav-link text-dark text-center p-0 collapsed"
data-toggle="collapse"
data-target="#Details"
aria-expanded="true"
aria-controls="Details"
href="@Url.Page("Area/Details/" + @Model.wItem.GUID, "ShowDetails")">
@item.Position
</a>
jQuery(function($) {
$('.nav-link').on('click', function(e) {
e.preventDefault(); // stop the standard link behaviour
$.ajax({
url: $(this).attr('href'),
type: 'GET',
cache: false,
headers: {
RequestVerificationToken: $('input:hidden[name="__RequestVerificationToken"]').val()
}
}).done(function(result) {
$('#MainframeContents').html(result);
});
});
});
添加回答
举报