此行位于MVC.Net 4.0 Razor视图中:
@Html.ActionLink("Name Of File", "OpenDocument", new { path = Model.Document.path })
但是,这个视图的控制器(让它称之为FileController)没有任何名为" OpenDocument"的函数。
另一个控制器(让它称之为DocumentController)确实具有" OpenDocument"。
在本地跑步(视觉工作室),神奇的东西"解决"控制器使用和它的工作。但是,在另一台服务器上它崩溃了,因为它没有找到内部的功能" FileController"。
根据我对@ Html.ActionLink的理解,如果你没有指定控制器名称,它需要表格的控制器...我错了吗?
MVC.Net应用程序中的哪些配置可以做到这一点?
由于
答案 0 :(得分:1)
是的,如果您使用的overload仅包含链接名称,操作名称和路由值,它将在当前控制器内查找为其呈现当前视图的操作名称。< / p>
但您可以使用Html.ActionLink
的{{3}},您也可以在其中明确指定控制器名称。
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)
答案 1 :(得分:0)
我非常确定ActionLink没有执行提交,所以基本上你需要指定要识别的控制器。如果错了,有人会纠正我。
通常我使用ajax的动作链接来发送我的数据。