Html.ActionLink 给出空白 href

问题描述 投票:0回答:1

我有一个 ASP.NET Core Razor Pages (.NET 8),但我正在努力使用 @Html.ActionLink,因为我不太理解它们。

我有一个视图,通过 foreach 我创建了几个动作链接,它们看起来像这样:

@Html.ActionLink("(Link Name)", "LoadData", "Shared", new { id1= 0, id2=0 }, new { @class = "sbmt" })

(忘了

但是当我打开 Chrome 的元素检查器时,他们的 href 是空的(这是正确的吗?因为我认为他们会喜欢

在谷歌搜索解决方案给了我几个答案:

  • 在我的 Program.cs 中映射控制器和操作的路线,但我不确定为什么要这样做。

  • 替换任何其他 html 控件的 actionlink 并创建一个 Ajax 函数来调用我的控制器函数,但是当我检查 ajax 函数时,url 为空

          $(".sbmt").click(function (e) {
    
          e.preventDefault();
    
          var id1 = $(this).data("id1");
          var id2 = $(this).data("id2");
    
          $.ajax({
              type: "GET",
              data: JSON.stringify({ id1: id1, id2: id2 }),
              url: '@Url.Action("LoadData", "Shared")',
              method: "GET",                
              dataType: 'json',
              contentType: false,
              processData: false,
              success: function (data) {
                  $('#partialView').html(data);
              }
          });
      });
    

https://i.stack.imgur.com/S6uvL.png

c# model-view-controller razor razor-pages .net-8.0
1个回答
0
投票

嗯,我发现问题已经使用路线解决方案解决了,我附上了一张图片,您可以在其中找到我是如何解决的。

但是我不明白的是路由与actionlink有什么关系,我认为actionlink会自己工作,因为你必须指定控制器和action

https://i.stack.imgur.com/csGRK.png

© www.soinside.com 2019 - 2024. All rights reserved.