Asp.net 自定义控制器按非ID查找

Asp.net 自定义控制器按非ID查找,asp.net,asp.net-mvc-3,asp.net-mvc-4,Asp.net,Asp.net Mvc 3,Asp.net Mvc 4,我如何创建一个自定义详细信息来搜索,而不是通过id,而是通过包含以下属性的特定witch 这里我有一个模型调用菜单,里面有以下属性 ID Title Link 我知道我可以通过以下方式详细说明 Details(int id) { Menu menu= db.Menus.Find(id); } 然而,我希望这是一个字符串 像localhost/about 我知道我必须创建一个自定义路由,我可以这样做,但我不知道如何通过字符串链接查找。我的尝试失败了 Details(string link) {

我如何创建一个自定义详细信息来搜索,而不是通过id,而是通过包含以下属性的特定witch

这里我有一个模型调用菜单,里面有以下属性

ID
Title
Link
我知道我可以通过以下方式详细说明

Details(int id)
{
Menu menu= db.Menus.Find(id);
}
然而,我希望这是一个字符串

localhost/about

我知道我必须创建一个自定义路由,我可以这样做,但我不知道如何通过字符串链接查找。我的尝试失败了

Details(string link)
{
Menu menu= db.Menus.Find(link);
}
尝试使用:

其中,
SomeProperty
显然是您想要比较的模型上的属性。如果未找到与指定条件匹配的元素,
FirstOrDefault
扩展方法将返回
null
。因此,处理这种情况取决于您。

尝试使用:

其中,
SomeProperty
显然是您想要比较的模型上的属性。如果未找到与指定条件匹配的元素,
FirstOrDefault
扩展方法将返回
null
。所以这件案子由你来处理

public ActionResult Details(string link)
{
    Menu menu = db.Menus.FirstOrDefault(m => m.SomeProperty == link);
    ...
}