Я в основном беру шаблон ASP.NET MVC по умолчанию и расширяю его:
Глядя на site.master
, я вижу это для меню:
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("About", "About", "Home")%></li>
</ul>
Затем я редактирую его следующим образом:
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("About", "About", "Home")%></li>
<li><%= Html.ActionLink("My Contact Info", "Details/" + Html.Encode(Page.User.Identity.Name), "Users")%></li>
</ul>
Проблема в том, что в контроллере у меня есть два разных метода:
//
// GET: /Users/Details/userName
public ActionResult Details(string loginName)
{
UserInfo user = repo.GetUserByName(loginName);
return View(user);
}
//
// GET: /Users/Details/5
public ActionResult Details(int id)
{
UserInfo user = repo.GetUser(id);
return View(user);
}
Я получаю исключение, которое говорит, неоднозначный метод. Потому что он не может понять, какой позвонить. Я хотел бы надеяться, что он сможет выяснить это по типу данных, но, очевидно, нет.
У кого-нибудь есть предложения по поддержке просмотра деталей и запросов по различным полям? (Конечно, все запрашиваемые поля уникальны.)