2015-07-21 89 views
2

在asp.net MVC應用程序中,我需要生成一些文檔,HTML和PDF,這些文檔不會發送到用戶的瀏覽器,而是發送通過郵件或輸入我們的文件記錄系統。我使用Razor生成這些文檔。如何在.NET中調用另一個控制器上的方法4 MVC

當僅使用一次文檔時,我只需向相關控制器添加一個方法,並將該方法添加到該控制器的視圖文件夾。這工作。但是我有一份文件,必須在應用程序的兩個地方生成,並在單獨的控制器中執行。我用它自己的視圖文件夾爲這個文檔創建了一個新的控制器。

我現在的問題是:如何在這個控制器上調用一個方法?搜索網絡給出了很多答案,但是所有將用戶重定向到這個文檔,這不是我所需要的。

+0

您不應_want_自己調用控制器方法。把邏輯放在一個單獨的類中,用它自己的方法來調用它。另請參見[在不同控制器上的.NET MVC調用方法](http://stackoverflow.com/questions/1296680/net-mvc-call-method-on-different-controller)。 – CodeCaster

回答

2

你可以像使用任何其他方法一樣調用它。

public ActionResult DoSomething() 
{ 
    // Some code 
    var otherController = new OtherController(); // The other controller where the method is 
    otherController.CreatePdf(); // Call the method 

    // Continue with what ever else you need to do 

    return View(); // This will then return the `DoSomething` View 
} 

但個人而言,它似乎並不像這個邏輯屬於控制器。你應該考慮將這個邏輯從控制器中重構出來,變成更合乎邏輯的地方。可能創建自己的文檔生成類並使用它。

相關問題