0

私はそのようなMVC ActionLinkを持っています(これはうまく動作します)

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

しかし、ビューで文字列操作を行うことは「推奨」されていないため、カスタム Html ActionLink を構築して文字列置換を行うにはどうすればよいでしょうか?

4

1 に答える 1

1

カスタム ActionLink もそれを行うのに間違った場所のようです。カスタム View Model を介して Slug をコントローラーからビューに渡す方がよいでしょう。Slug は、View Model のプロパティであり、setter で呼び出される文字列ロジックです。

たとえば、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 ビュー モデル パターン

于 2010-07-11T03:07:28.293 に答える