Значения необязательных параметров T4MVC, подразумеваемые из текущего контекста

Я заметил, как мне кажется, странное поведение с T4MVC. В частности, я пытаюсь создать ActionLink (, используя HtmlHelper )для действия, где значение необязательного параметра равно null. Это отлично работает большую часть времени. Однако, если текущий маршрут совпадает с тем, для которого строится ActionLink, И опциональный параметр имеет ненулевое значение, отличное от -, результирующий ActionLink будет указывать значение необязательного параметра из текущего контекста маршрута.

Это многословное объяснение, я думаю, что код поможет прояснить.

Контроллер

public virtual ActionResult Today(int? lineNumber = null)
{
    return Index(DateTime.Today, DateTime.Today, lineNumber);
}

Маршрут

context.MapRoute(
    "TodaysProductionSchedules",
    "Production/{Controller}/Today/{lineNumber}",
    new
        {
            area = AreaName,
            controller = MVC.Production.ProductionSchedules.Name,
            action = MVC.Production.ProductionSchedules.ActionNames.Today,
            lineNumber = UrlParameter.Optional
        });

Бритва

@Html.ActionLink("Show Today", MVC.Production.ProductionSchedules.Today(null))

Как я упоминал ранее, если я в данный момент не нахожусь в представлении, которое сопоставлено с этим маршрутом, ссылка будет сгенерирована правильно. Однако, если текущее представление действительно отображает этот маршрут, И я либо опускаю значение, либо предоставляю null (, как показано во фрагменте бритвы ), параметр lineNumber примет свое значение из текущего значения маршрута.

Я думаю, что это может быть ошибка в T4MVC, поэтому я также размещу ссылку на эту тему на сайте codeplex T4MVC. Заранее спасибо!

6
задан Vinney Kelly 19 July 2012 в 17:29
поделиться