html.actionlink不要调用动作

时间:2018-03-13 16:40:01

标签: asp.net-mvc html.actionlink

我是MVC的新手。在阅读之后,一些手册试图创造一些实践。

现在我需要在actionlink上提供相同的帮助。他没有称之为行动。但是,如果我按下一个按钮,他就会调用该动作,并且动作链接的值就在那里。

我想要做的是当我按下带有文字的动作链接时,在这种情况下有问题的字母是“A”。我调用该操作,并返回一个查询结果,如数据库中以“A”开头的名称。使用按钮工作但不与actionlink一起工作。也许我做错了什么

这是我的代码。

<!-- 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();
        }

此操作与按钮相同,因为如果添加其他操作,则会使用相同名称的操作给出有关ambigous的错误。

1 个答案:

答案 0 :(得分:0)

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

如果我正确理解您的问题,您需要多个链接,根据用户点击的链接将用户返回到不同的搜索结果。以下是:

@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方法不同的参数,并且很可能只需要包含您的viewmodel。但是,这完全取决于您的post方法正在做什么。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CrewMembers(Models.crew crew)
{
}
相关问题