【发布时间】:2014-06-04 15:28:06
【问题描述】:
我最近才开始使用 MVC。在我看来,我有一种情况,我需要为几个不同的地方创建几个不同的链接。目前我正在使用 switch 语句,使用它们的类型作为参数,并单独写出它们。此处示例:
switch (link.Type)
{
case "type1": %>
<a href='<%= Url.RouteUrl("A", new { controller = "Controller1", action = "Action1",
param1 = x, param2 = y, newWindow = "yes" }) %>' target="_blank"><%: link.Name %></a> <%
break;
case "type2": %>
<a href='<%= Url.RouteUrl("B", new { controller = "Controller2", action = "Action2",
param1 = x, param2 = y, newWindow = "yes" }) %>' target="_blank"><%: link.Name %></a> <%
break;
}
从上面的示例可以看出,URL 之间只有非常小的变化。我相信我将拥有 10-20 种这些类型,显然我只会在页面上显示一次的解决方案将是理想的。
是否可以传入变量来替换“A”、“Controller1”、“Action1”?
EDIT1:Erik 已经解决了我的问题,但出于好奇,是否也可以通过变量提供参数名称?因此,我可以通过变量来决定“param2”或“param3”,而不是使用名为“param2”的参数?
EDIT2: 示例中的 x 和 y 是在点击 Url.RouteUrl 链接时使用的整数。
例如,我的应用程序中有两个参数,即 projectId 和 recordId。当用户单击链接时,他们将被带到不同的控制器/视图并从那里继续。 projectId在所有链接中都是一致的,但有时可能不是recordId,而是tableId,articleId等。有没有办法处理这些不同的参数?
【问题讨论】:
标签: asp.net-mvc-3 model-view-controller