2010-07-04 1 views
0

На корневой странице моего проекта у меня есть несколько различных служб страны, которые собираются по категориям на одной странице. Категория - это страница «Индекс» в папке «Вид» в отдельной области, а конкретная служба - это «Детали». Я хочу, чтобы пользователь мог перейти прямо через категорию в области (в данном случае в Китае) к этой конкретной детали услуг.asp.net mvc2 Hw Я использую Actionlink для перехода от корня прямо к деталям страницы

У меня есть это:

<%=Html.ActionLink("More Info", "Details", "ParticularChinaServiceControllerName", new { area = "China" }, new { id = p.ID })%> 

но рамки не подберут идентификатор.

Маршрут зарегистрирован как: общественного переопределения строка AreaName { получить { возвращения "Китая"; }}

public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "China_default", 
      "China/{controller}/{action}/{id}", 
      new { action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 

Может кто-то показать мне, как сделать эту работу правильно?

ответ

1

Измените имя своего контроллера с «ParticularChinaServiceController» на «ParticularChinaService» и проверьте, устраняет ли это проблему.

Подождите, что последний аргумент:

new { id = p.Id } 

... на самом деле htmlAttributes аргумент, и будет применять этот идентификатор в качестве атрибута гиперссылки сгенерированного в HTML. Измените предыдущий аргумент:

new { area = "China", id = p.Id } 

И отбросить последний аргумент (если вам не нужно применять некоторые специфические атрибуты на стороне клиента).

+0

нет, к сожалению, нет, это просто подменное название для демонстрационных целей этого сайта, а не для реального, но спасибо за это. –

+0

Ответ обновлен, посмотрите, поможет ли это. –

+0

Да, я пробовал это уже, но он просто создает «/ Details? Length = 27», что заставляет меня думать, что я все еще короткая одна маленькая штука в этом заявлении actionlink. –