html.actionlink 不要调用操作

html.actionlink dont call action

我是 MVC 新手。阅读手册的某些部分后,尝试创建一些练习。

现在我在操作链接上需要同样的帮助。他没有采取行动。但如果我按下一个按钮,他就会调用动作,并且动作链接的值就在那里。

我想做的是当我按下带有文本的操作链接时,在这种情况下有问题的字母是 "A"。我调用该操作,他 return 查询结果类似于数据库中以 "A" 开头的名称。使用按钮有效,但不适用于操作链接。也许我做错了什么

这是我的代码。

<!-- Alfabeto -->
    <div class="alfabetofont">
        <span class="alfabetoborder">

            @Html.ActionLink("A", "CrewMembers", "Home",
                         new { id = "A", @Name = "A" }, new { @class = "alfabeto_link" })

在我的控制器中。这是

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult CrewMembers(Models.crew crew,string id,string Name)
        {
        if (crew.Nome != null)
        {
            DataTable dt = new DataTable();
            dt = crew.GetStoreProc(crew.Nome);
            ViewData["TabelaTrip"] = dt;
            return View();
        }
        else return View();
        }

此操作与按钮相同,因为如果添加另一个操作,它会给出关于同名操作不明确的错误。

模棱两可的错误通常与具有相同名称和相同参数的方法有关。编译器无法确定调用哪一个。

如果我对您的问题的理解正确,您需要多个 link 用户根据他们点击的 link 来获得不同的搜索结果。所以如下:

@Html.ActionLink("A", "CrewMembers", "Home",
                         new { @StartsWith = "A" }, new { @class = "alfabeto_link" })

应该有一个相关的 [HttpGet] 操作像这样相关

[HttpGet]
public ActionResult CrewMembers(string StartsWith)
{
      //Do some fetch based on passed in string
      //Populate viewModel with data
      return view(viewModel)
}

您的 post 方法应包含与 get 方法不同的参数,并且很可能只需要包含您的视图模型。然而,这完全取决于您的 post 方法在做什么。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CrewMembers(Models.crew crew)
{
}