簡體   English   中英

HTML.ActionLink解決控制器

[英]Html.ActionLink resolve controller

此行在MVC.Net 4.0 Razor視圖中:

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

但是,此視圖的控制器(我們稱其為FileController)沒有任何名為“ OpenDocument”的函數。

另一個控制器(我們稱它為DocumentController)確實具有“ OpenDocument”功能。

在本地運行(Visual Studio)時,某些東西神奇地“解析”了要使用的控制器,並且可以正常工作。 但是,在另一台服務器上它崩潰,因為在“ FileController”中找不到該函數。

根據我對@ Html.ActionLink的了解,如果不指定控制器名稱,它將采用Form的控制器...我錯了嗎?

MVC.Net應用程序中的哪些配置可以做到這一點?

謝謝

是的,如果您正在使用僅包含鏈接名稱,操作名稱和路徑值的重載 ,它將在呈現當前視圖的當前控制器內查找該操作名稱。

但是您可以使用Html.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)

我很確定ActionLink不會執行提交,因此基本上您需要指定要識別的控制器。 如果有錯,有人糾正我。

通常我將動作鏈接與ajax一起使用來發送數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM