如果您想从控制器获取 ID,为什么不接受 Marko 提出的建议,而不是将其放入 id 属性中,而是将其放入您的 href 标记并传递 ID 属性。
默认情况下,MVC 中的路由需要返回一个 ID,它是您的路由的一部分:
http://sitename/{Controller}/{Action}/{Id}
所以,你可以做这样的事情(我将使用 Razor 语法,但是,你可以调整):
@for(var i = 0; i < Model.getLeagues.Count; i++) {
Html.ActionLink("Button Name", "Index", "MyController", new { id = Model.getLeages[i] }, new { @class="classname", alt = "@Model.getLeagues[i].name" }) %>
}
而且,在您的控制器中(根据需要重命名),您将拥有:
public class MyController : Controller {
public ActionResult Index(int id) {
// Do stuff with the ID that you get back here.
}
}
另外,你会注意到我泄露了你的图片信息。相反,在您的样式表中创建一个类,例如:
a.classname
{
background: url(../Images/image.gif) no-repeat top left;
/* Do whatever else you need to do here to style your buttons. */
}
我没有检查任何代码,所以不能保证它在语法上是完美的,但这应该会让你走上正确的道路。
我确实注意到了您通往 Teams.aspx 的路径。如果您来自 WebForms,则可以编辑路由文件以直接指向 RESTful 路由,如下所示:
routes.MapPageRoute("Teams", "MyController/Index", "~/WebForms/Index/Teams.aspx");
(归功于:https ://stackoverflow.com/a/10175580/132528 )