ASP.NET MVC 2 视图与部分视图 - 部分视图打开新页面

本文关键字:视图 新页面 NET MVC ASP | 更新日期: 2023-09-27 17:55:17

我的代码在VS2010 C#中运行良好,但是一旦发布到IIS7,PartialView(记录列表)就不会在视图中呈现...它将滚动到一个没有数据的新页面,除了从 SQL 服务器检索到的正确记录计数。SQL 服务器位于单独的框中。

我在这个网站上搜索了几个小时,但没有找到解决方案。

使用渲染部分的视图:

   <table style="width:100%">
<tr>
<td>
<h3>Outage Tracking List (Open or Active)</h3>
</td>
<td style="text-align:right">
<h1><%: ViewData["ApplicationName"]%></h1>
</td>
</tr>
</table>    
<% Html.RenderPartial("OutageSearch",this.ViewData.Model); %>

部分视图:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<OutageTrackingWebSite.Models.OutageViewModel" %>
<div>
<script language="javascript" type="text/javascript">

    function OutageSearch() {
        $("#OutageSearchForm #CurrentPageNumber").val("1");       
        PostSearchForm();
    }

各种功能然后部分视图的其余部分

  <% using (Ajax.BeginForm("OutageSearch", null,
        new AjaxOptions { UpdateTargetId = "DivOutageSearchResults", OnComplete="OutageSearchComplete" },
            new { id = "OutageSearchForm" })) { %>
<table style="background-color: #ebeff2;  width: 100%; border:solid 1px #9fb8e9" cellspacing="2" cellpadding="2">
    <tr>
        <td style="width: 60%; text-align: left">
            <input id="btnSearch" onclick="OutageSearch();" type="submit" value="List Open/Active" />
        </td>
    </tr>
</table>
<div id="DivOutageSearchResults">    
 <% Html.RenderPartial("OutageSearchResults", this.ViewData.Model); %> 
</div>
<% } %>

其他部分视图

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<%OutageTrackingWebSite.Models.OutageViewModel" >

    <input name="CurrentPageNumber" type="hidden" id="CurrentPageNumber" value="<%=Model.CurrentPageNumber%>" />
<input name="TotalPages" type="hidden" id="TotalPages" value="<%=Model.TotalPages%>" />     
<input name="SortBy" type="hidden" id="SortBy" value="<%=Model.SortBy%>" />     
<input name="SortAscendingDescending" type="hidden" id="SortAscendingDescending" value="<%=Model.SortAscendingDescending%>" />     
<input name="PageSize" type="hidden" id="PageSize" value="9" />
 <script language="javascript" type="text/javascript">
function GetOutageDetails(OutageID) {
             if (formIsDisabled == false) {
                 DisableForm();
                 formData = "OutageID=" + OutageID;
                 setTimeout(PostOutageIDToServer, 1000);
             }
         }
         function PostOutageIDToServer() {
             $.post("/Outage/GetOutageInformation", formData, function (data, textStatus) {
                 OutageUpdateComplete(data);
             }, "json");
         }
         

控制器


       public ActionResult DisplayOutageList()
        {

            Models.OutageViewModel outageViewModel = new Models.OutageViewModel();
            outageViewModel.TotalPages = 0;
            outageViewModel.TotalRows = 0;
            outageViewModel.CurrentPageNumber = 0;
            ViewData.Model = outageViewModel;
            string applicationName = Convert.ToString( System.Configuration.ConfigurationManager.AppSettings["ApplicationName"]);
            ViewData["ApplicationName"] = applicationName;
            return View("OutageMaintenance");
        }
        /// 
        /// Outage Search
        /// 
        /// 
        public PartialViewResult OutageSearch()
        {
            long totalRows;
            long totalPages;
            bool returnStatus;
            string returnErrorMessage;
            OutageBLL OutageBLL = new OutageBLL();
            Models.OutageViewModel outageViewModel = new Models.OutageViewModel();
            this.UpdateModel(outageViewModel);
            List Outages = OutageBLL.OutageSearch(
                outageViewModel,
                outageViewModel.CurrentPageNumber,
                outageViewModel.PageSize,
                outageViewModel.SortBy,
                outageViewModel.SortAscendingDescending, 
                out totalRows,
                out totalPages,
                out returnStatus,
                out returnErrorMessage);
            ViewData["Outages"] = Outages;
            outageViewModel.TotalPages = totalPages;
            outageViewModel.TotalRows = totalRows;
            ViewData.Model = outageViewModel;
            return PartialView("OutageSearchResults");
        }

         /// 
        /// Get Outage Information
        /// 
        /// 
        public JsonResult GetOutageInformation()
        {
            bool returnStatus;
            string returnErrorMessage;
            List returnMessage;
            OutageBLL outageBLL = new OutageBLL();
            Models.OutageViewModel outageViewModel = new Models.OutageViewModel();
            this.TryUpdateModel(outageViewModel);
            Outage outage = outageBLL.GetOutageInformation(
                outageViewModel.OutageID, 
                out returnStatus, 
                out returnErrorMessage,
                out returnMessage);
            outageViewModel.UpdateViewModel(outage, typeof(Outage).GetProperties());
            outageViewModel.ReturnMessage = returnMessage;
            outageViewModel.ReturnStatus = returnStatus;
            outageViewModel.OutageScheduledDate = UtilitiesBLL.FormatDate(outageViewModel.ScheduledDate);
            outageViewModel.OutagePlannedDuration = UtilitiesBLL.FormatDuration(outageViewModel.PlannedDuration);
            return Json(outageViewModel);
        }

ASP.NET MVC 2 视图与部分视图 - 部分视图打开新页面

检查已部署版本上包含的 JavaScript 文件。如果您缺少某些文件(MicrosoftMvcAjax.js,jQuery.js),则可以简单地发布页面,而不是使用Ajax帖子。