构建MVC ActionLink的正确方法

时间:2010-07-11 02:51:04

标签: asp.net-mvc-2 html-helper partial-views actionlink

我有一个像这样的MVC ActionLink(效果很好)

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

但是因为它不是“推荐”在View中进行字符串操作,所以我想知道如何构建一个自定义的Html ActionLink来为我做字符串替换?

1 个答案:

答案 0 :(得分:1)

自定义ActionLink似乎也是错误的做法,最好通过自定义视图模型将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 View Model Patterns