Правильный способ построения MVC ActionLink - PullRequest
0 голосов
/ 11 июля 2010

У меня MVC ActionLink вот так (работает отлично)

<%: Html.ActionLink(user.UserName, "Details", "Users", New With{.id = user.ID, .slug = Replace(user.UserName," ","-")}, nothing)%>

Но так как "не рекомендуется" выполнять манипуляции со строками в представлении, мне интересно, как я мог бы создать собственный Html ActionLink для замены строки?

1 Ответ

1 голос
/ 11 июля 2010

Пользовательский ActionLink, кажется, также не подходит для этого, лучше передать Slug через пользовательскую модель представления в представление из контроллера. Slug может быть свойством модели представления и строковой логики, вызываемой в установщике.

Например, добавьте класс UserViewModel в папку «ViewModels».

public class UserViewModel
{
  public User User { get; private set; }
  public string Slug { get; private set; }

  public UserViewModel(User user)
  {
      Slug = Replace(user.UserName," ","-");
  }
}

Затем в контроллере передайте его в представление как:

return View(new UserViewModel(user))

Подробнее об использовании ViewModel:

MVC Просмотр образцов моделей

...