Asp.Net MVC - HTML.ActionLink - HowToGoTo - Клиент / Индекс / A - маршрут - PullRequest
2 голосов
/ 08 сентября 2011

Это у меня на маршруте (работает)

    routes.MapRoute("ClientIndexAndSubstringChar", _
                    "{controller}/{action}/{FirstChar}", _
                    New With {.char = "[a-zA-Z0-9]"})

Это у меня в контроллере (работает)

   Function Index(Optional ByVal KlantenSet As List(Of Domain.Slave.Klant) = Nothing, Optional FirstChar As Char = Nothing, Optional format As String = "html") As ActionResult
     //Some Code
    End Function

Это мой вид (неправильно связывается)

@If ViewBag.ClientsLetters IsNot Nothing Then
  For Each ClientLetter As String In ViewBag.ClientsLetters
    @<div class="ClientsLetter">
      @Html.ActionLink(ClientLetter, "Index", "Client", New With {.FirstChar = ClientLetter})
    </div>
   Next
 End If

Действие LinkLink неверно ....

Что я должен сделать, чтобы это исправить? Моя ссылка ссылается на: http://localhost:52254/Client/Index.html?Length=6 Вместо http://localhost:52254/Client/Index/A

1 Ответ

2 голосов
/ 08 сентября 2011

Ваша ссылка действия

@Html.ActionLink(ClientLetter, "Index", "Client", New With {.FirstChar = ClientLetter})

Параметры здесь соответствуют этим http://msdn.microsoft.com/en-us/library/dd504972.aspx

Должно быть что-то вроде этого

@Html.ActionLink(ClientLetter, "Index", "Client", New With {.FirstChar = ClientLetter}, Null)

Эти параметры соответствуют http://msdn.microsoft.com/en-us/library/dd493068.aspx

Для MapRoute я думаю, что вы можете сделать это:

routes.MapRoute("ClientIndexAndSubstringChar", _
                "{controller}/{action}/{FirstChar}")

Просто избавьтесь от этого последнего параметра.Попробуйте и посмотрите, что он делает.

...