有時候,控制器需要檢查一個視圖是否存在,以便它可以採取一些行動,如果它不存在?如何告訴控制器存在ASP.NET Core視圖?
我以前看過類似這個問題的Does a View Exist in Asp.Net MVC?以前的版本的asp.net mvc,但是這樣的方法對ASP.NET Core不起作用。我一直無法找到任何關於如何在控制器內部使用ASP.NET Core執行此操作的文檔。
考慮以下幾點:
string viewLoc= "~/views/some-folder/some-file.cshtml";
控制器如何確定視圖是否存在?
我用類似的方法想出很好,但使用的是通過附加實現的絕對路徑''IHostingEnvironment'但ContentRootPath'感覺有點髒對我來說,因爲我可以看到,我可以注入'IRazorViewEngine'到控制器中,它有一個'FindView'方法。但我永遠無法將'ViewEngineResult.Success'重新設置爲true。所以最終我沒有使用System.IO.FIle.Exists。 –
請注意,'IApplicationEnvironment'和'IRuntimeEnvironment'在RC2中被刪除,並且可以通過'Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default'靜態訪問,更多信息:https://github.com/aspnet/PlatformAbstractions/issues/37 –
好的提示。在我的情況下,我使用'IHostingEnvironment'來獲取'ContentRootPath'。 'IHostingEnvironment'是'Controller'注入RC2。 –