РЕДАКТИРОВАТЬ: Очевидно, что это значительно упрощенная версия моего сайта, и если я создаю тестовое приложение, с этим шаблоном он работает нормально. В нашем реальном приложении мы используем T4MVC, и это все в пределах области. Я предполагаю, что один из этих факторов вызывает мою проблему ...
EDIT2: все маршруты по умолчанию определены, и если я перехожу непосредственно к / AreaName / ControllerName / SubChild? Val = 123, он рендерится.
У меня особенная проблема с Mvc, и я надеюсь, что кто-то может помочь ...
У меня есть контроллер со следующими методами действий
public ActionResult Index()
{
return View(GetModel());
}
public ActionResult Result Child(string blah)
{
return View(GetModel(blah));
}
public ActionResult Result SubChild(int val)
{
return View(GetModel(val));
}
У меня тогда есть 3 вида бритвы.
Index.cshtml
<div>
@Html.Action("Child", new { blah = "raaa"})
</div>
Child.cshtml
<div>
@*ERROR HERE*@
@Html.Action("SubChild", new { val = 123})
</div>
SubChild.cshtml
<h1>@Model.val</h1>
Когда я перехожу к / я получаю исключение, говорящее, что
Msgstr "Ни один маршрут в таблице маршрутов не соответствует заданным значениям." на Html.Action, вызывающем действие SubChild.
Это все в одной области и в одном контроллере. Если я изменю разметку и использую Html.Partial для вызова дочернего представления (а также создаю модель и передаю ее в представлении), она отображается нормально. Проблема возникает, когда я вызываю Html.Action в представлении, которое уже отображается с использованием Html.Action.
Я попытался полностью квалифицировать действие, используя
/ area / controller / action, указав контроллер в вызове Html.Action, передав область в качестве параметра в значениях маршрута и их комбинациях.
У кого-нибудь есть идеи, что это может быть? Я предполагаю, что вы можете вызвать Html.Action в представлениях, которые визуализируются с использованием этого, я думаю, что я могу ошибаться ...