Вы должны иметь возможность сгенерировать второй аргумент для метода ActionLink, основываясь на поле типа новостей или аналогичном в вашей таблице. например,
<%
Dim newsType As String = dNews.Rows(dCount).Item("newsType")
Dim controllerName As String
Dim actionName as String
' I'm guessing you have a field similar to this:
If (newsType = "Com. News") then
controllerName = "Community"
actionName = "CommunityNews"
End If
If (newsType = "Ath. News") then
controllerName = "Athletics"
actionName = "AthleticsNews"
End If
%>
<%=Html.ActionLink(dTitle, actionName, controllerName, New With {Id = id})%>
Это должно сработать, но я бы начал беспокоиться, что в представлении слишком много кода. Возможно, было бы не очень хорошей идеей передавать DataTables в качестве вашей модели, но на этом этапе может потребоваться много работы, чтобы изменить это.
Вы можете создать вспомогательный метод, который будет возвращать контроллер и действие для определенного типа новостей, или, что еще лучше, генерировать ссылку с учетом типа новостей. Вы можете сделать это, создав класс с методами расширения для класса HtmlHelper. Этот метод будет выглядеть примерно так:
<Extension()> _
Public Sub NewsLink(ByVal htmlHelper As HtmlHelper, newsType as string, linkText As String, id As int)
Dim action As String
Dim controller As String
'todo: logic to get action and controller names from news type
return htmlHelper.ActionLink(linkText, action, controller, New With {Id = id})
End Sub
Удачи. Я думаю, что меньше людей используют VB.NET, чем C # с MVC.