我是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的错误。
答案 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)
{
}