簡體   English   中英

Asp.Net html.renderaction在本地工作,但在服務器上沒有錯誤

[英]Asp.Net html.renderaction works locally but not on server no error

我實際上在Asp.Net MVC項目上工作,並且在使用Html.RenderAction方法從另一個視圖加載視圖時遇到問題。 僅當在遠程服務器上部署解決方案時,當我嘗試訪問視圖時,才可以這樣做。

這是我使用的代碼:

  • 我有一個Index.cshtml視圖,看起來像這樣:

     <section class="panel panel-default"> <section class="panel panel-default"> <header class="panel-heading">@Html.Localize("SmartContactMessages", "CustomersManagement")</header> <div class="row wrapper"> <div class="col-sm-5 mb-xs"> <a class="btn btn-primary" href="@Url.Action("Create")"> <i class="fa fa-plus text"></i> <span class="text">@Html.Localize("SmartContactMessages", "Create")</span> </a> @*<a class="btn btn-danger" href="#" onclick="DeleteTerritories()"> <i class="fa fa-trash-o text"></i> <span class="text">@Html.Localize("SmartContactMessages", "Delete")</span> </a>*@ </div> </div> <div id="CustomerListZone"> @{ Html.RenderAction("List"); } </div> 

如您所見,我使用Html.RenderAction方法加載視圖“列表”。

List.schtml,顯示包含不同企業的表。 (無需顯示其代碼)

  • 在我的控制器中,我有以下代碼:

      [Authorize(Roles = RoleConstantes.AdminGlobal)] public ActionResult List() { Logger.Info("List method enterred"); EnterpriseListMessage message = null; WcfService<IEnterpriseServiceContract>.Use(Logger, e => message = e.GetAll()); var smartContactEnterpriseListViewData = new SmartContactEnterpriseListViewData { CurrentPage = 0, ItemPerPage = 10, NbPage = 1, Total = 2 }; if (message != null && message.Success && message.Result != null) { smartContactEnterpriseListViewData.Entities = message.Result; //var t = new EnterpriseEntity[3]; //t[0] = new EnterpriseEntity {Id = 1, Name = "Test1", UuId = "AZERTY1234", IsActive = true}; //t[1] = new EnterpriseEntity {Id = 2, Name = "Test2", UuId = "WXCVBBN6548", IsActive = true}; //t[2] = new EnterpriseEntity {Id = 3, Name = "Test3", UuId = "QSDFDG542358", IsActive = false}; //smartContactEnterpriseListViewData.Entities = t; } else { if(message == null) Logger.Error("Get all enterprises fail : Message is null"); if(message != null && !message.Success) Logger.Error("Get all enterprises fail : Message success is false"); if(message != null && message.Success && message.Result == null) Logger.Error("Get all enterprises fail : Message result is null"); } return PartialView(smartContactEnterpriseListViewData); } 

此方法必須獲取所有企業並將其返回到View。 所有這些在我的本地IIS上都可以正常工作。 但是,一旦我在遠程服務器上構建它,便無法再顯示此視圖,並且不會顯示任何錯誤。

我通過指定“ entered list method”記錄了List()方法,但是在遠程服務器上它從未被調用。 我還模擬了對WCF的調用,以確認該能力不是來自此處的(您可以在List方法中看到注釋的代碼)

如果你們中的任何一個有任何想法,那將會很感激:)

終於我解決了這個問題。 問題不在於角色授權。 實際上,我的WCF使我得到了很多數據,因此觸發了maxBufferedSizeOverflow。 實際上,本地服務器上的數據要比遠程服務器上的數據少。 因此,我實現了一種通過建立分頁來返回較少數據的方法。 問題解決了 !

暫無
暫無

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

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