编辑:显然,这是我的网站的一个大大简化版本,如果我做了一个测试应用程序,与此模式,它工作正常。在我们的真实应用程序中,我们使用的是T4MVC,并且这些都在一个区域内。我猜这些因素之一导致我的问题...Razor中嵌套的Html.Action调用
编辑2:所有的默认路由都定义,如果我直接导航到/ 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>
当我浏览到/我得到抛出的异常说 “没有路线在路由表中匹配提供的值。“在调用SubChild Action的Html.Action上。
这些都在同一个区域和相同的控制器。如果我更改标记并使用Html.Partial调用Child视图(并构建模型并在视图中传递它),则呈现效果良好。当我在一个已经使用Html.Action呈现的视图中调用Html.Action时,问题就出现了。
我已经尝试使用 /area/controller/action完全限定动作,在Html.Action调用中指定控制器,将区域作为参数传递给路径值以及所有这些组合。
有没有人有任何想法这可能是什么?我假设你可以在视图中使用Html.Action进行调用,我想我可能是错的...