的,我想我已经问过这个,但是该解决方案并没有实际的意义。无论如何,我有我的看法ActionLinks这样的:MVC路线ActionLink的网址使用名称,而不是ID
foreach(var item in Model){
<%: Html.ActionLink(item.Name, "Details", new {id = item.Id}) %>
}
现在,当它到我的行动细节显然,这将是URL
/MyThings/Details/{id}
我想知道是否有可能以显示名称而不是id使用一个slug?或修改全球ASAX像这样:
/MyThings/Details/CarKeys
的东西是名需要是唯一的,是有办法,我可以修改全局ASAX显示的名称,而不是ID?
任何意见是非常感谢!
是的,但是这将需要更改查询wonce它获取控制器是否正确?所以从公共ActionResult Details(int id)到public ActionResult Deatils(string name)。我有点想避免这种情况,但如果没有任何选择,那么我觉得这是一条路要走? – gdubs
取决于。你的控制器的'{id}'参数是否需要一个名字?如果是的话那么就'新{ID = item.Name}' – Buildstarted
@gdubs:是的,如果你打算通过它的名称来标识的东西,你显然需要使用比如果你通过识别其不同的查询它的ID。有一些先进的绑定技巧可以用来解决这个问题,但我会说你应该保持简单。如果你想方便的ID,但也想包括名称,使它看起来不错,只需包括像恶意指出。 – StriplingWarrior