我知道这可能是一个容易回答的简单问题,但我已经尝试了所有解决方案并且它无法正常工作。
我有一个actionlink:
@Html.ActionLink("Sales List", "AllSales", "ROI", new { result_Type = "All" })
但是当我点击它时,将ROI控制器更改为HomeController并发出以下错误:
A public action method 'AllSales' was not found on controller
'ROI.Controllers.HomeController'.
我不知道这是什么问题。我的行动metghod AllSales
如下:
public ActionResult AllSales(string result_Type)
{
ViewData["result_Type"] = result_Type;
return View();
}
和“AllSales”视图正在呈现如下的部分视图:
@{
ViewBag.Title = "AllSales";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@{Html.RenderPartial("_SelectAllSales", new { result_Type =
ViewData["result_Type"].ToString() });}
帮帮我,我不知道是什么问题。 注意:如果我在没有任何参数的情况下渲染“AllSales”视图,它工作正常。
答案 0 :(得分:3)
您没有正确使用ActionLink
帮助程序。没有ActionLink(HtmlHelper, String, String, String, Object)
的重载版本。但是,ActionLink(HtmlHelper, String, String, Object, Object)
版本与您的通话匹配。第一个Object
参数是您设置控制器名称但被解释为路由值对象的位置。因此,引擎会重定向到Home
控制器。
请改用:
@Html.ActionLink("Sales List", "AllSales", "ROI", new { result_Type = "All" }, null)
这将与ActionLink(HtmlHelper, String, String, String, Object, Object)
匹配,并允许您指定控制器。