2016-01-13 39 views
0

这条线路是在MVC.Net 4.0 Razor视图:Html.ActionLink决心控制器

@Html.ActionLink("Name Of File", "OpenDocument", new { path = Model.Document.path }) 

然而,这种观点的控制器(我们称之为FileController)没有名为“开放文档”的任何功能。

另一个控制器(我们称之为DocumentController)确实有功能“开放文档”。

在本地运行(视觉工作室),神奇的东西“解析”的使用和它的工作控制器。但是,在另一台服务器上,它因为没有在“FileController”中找到该函数而崩溃。

从我@ Html.ActionLink的了解,如果你不指定控制器名称,它采取的形式的控制器......我错了?

在MVC.Net应用什么配置能做到这一点?

感谢

回答

1

是的,如果你使用的是overload这只需链接名称,操作名称和路由值,它会寻找一个动作名称为其当前视图显示当前控制器内。

但是,您可以使用another overloadHtml.ActionLink,您可以在其中明确指定控制器名称。

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper, 
    string linkText, 
    string actionName, 
    string controllerName, 
    object routeValues, 
    object htmlAttributes 
) 

所以你的代码生成的链接会

@Html.ActionLink("Name Of File", "OpenDocument", "Document", 
               new { path = Model.Document.path },null) 
+0

THX,是的,我知道。这将解决问题。我只是想知道如何应用程序跳转到另一个控制器就这样? – Neb

+0

'Html.ActionLink'将生成锚标记的标记,其中'href'值指向路径(您将其作为控制器名称,操作名称等传递给方法) – Shyju

+0

我明白了。 FileController继承自DocumentController ... Thx来回答我的第一个问题! – Neb

0

我敢肯定的ActionLink不执行提交所以基本上你需要指定控制器要承认。有人纠正我,如果我错了。

平时我用行动链接与阿贾克斯送我的数据。

相关问题