这句话有什么问题?
我遇到以下错误:
错误10'System.Web.Mvc.HtmlHelper'不包含'ActionLink'的定义和最佳扩展方法重载'System.Web.Mvc.Html.LinkExtensions.ActionLink(System.Web.Mvc.HtmlHelper, string,string)'有一些无效的参数c:\ Code \ MvcUI \ Views \ Project \ Index.aspx 17 22 MvcUI
错误11参数'3':无法从'AnonymousType#1'转换为'string'c:\ Code \ MvcUI \ Views \ Project \ Index.aspx 17 54 MvcUI
答案 0 :(得分:2)
编译器说明了一切。有no such extension method。您需要将操作名称作为第二个参数传递:
<%= Html.ActionLink(
"Assign Users",
"Index",
new
{
Controller = "Users",
Action = "Index",
Query = "Index",
Page = 2932
}
) %>
为避免重复操作名称,您可以使用this extension:
<%= Html.ActionLink(
"Assign Users",
"Index",
"Users",
new
{
Query = "Index",
Page = 2932
},
null
) %>
更新:
如果您设置了默认路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
这将生成类型为http://localhost:2199/Users/Index/2932?Query=Index
<%= Html.ActionLink(
"Assign Users",
"Index",
"Users",
new
{
Query = "Index",
Id = 2932
},
null
) %>
答案 1 :(得分:0)
来自您之前的评论
我得到以下内容:localhost:2593 / Users?Query = Index&amp; Page = 2932我想拥有:Users \ Index \ id = 2932
这就是你需要的:
<%= Html.ActionLink("Assign Users",
"Index",
"Users",
new { id = 2932 },
null) %>
您的索引方法可能如下所示:
public ActionResult Index()
{
//.....
}
这意味着您的网址可能如下所示:
localhost:2593/Users/Index?id=2932
您还可以在动作方法中将id设为参数。因此,您的Index方法定义在控制器中可能如下所示:
public ActionResult Index(int id)
{
//.....
}
,你的网址看起来像这样
localhost:2593/Users/Index/2932