我有一个像这样的MVC ActionLink(效果很好)
<%: Html.ActionLink(user.UserName, "Details", "Users", New With{.id = user.ID, .slug = Replace(user.UserName," ","-")}, nothing)%>
但是因为它不是“推荐”在View中进行字符串操作,所以我想知道如何构建一个自定义的Html ActionLink来为我做字符串替换?
答案 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用法的更多信息: