【问题标题】:Partial View not loading once deployed部署后不加载部分视图
【发布时间】:2014-06-30 06:02:25
【问题描述】:

我有一个供 Intranet 使用的 MVC 5 网站。在一个页面上有一个局部视图,显示下拉列表中选择的任何项目的一些详细信息。这一切都在开发中本地工作。但是,一旦我将站点部署到我们的内部 Web 服务器,它就不再这样做了。其他一切仍然有效,创建、编辑、删除、详细信息、索引以及加载在索引页面上的不同部分。

使用 AJAX 在创建页面上加载并与 Create.cshtml 位于同一文件夹中的此 Partial 不会。

想法?我什至不知道先看哪里……

这是在我的创建页面上,用于加载部分,这在本地开发中也很有效。

<script type="text/javascript">
    $(function () {
        $("#ProductionOrder").change(function () {
            var po = $("#ProductionOrder").val().toString();
            $.get('/wetWashRequests/GetDetails?WONumber=' + po, function (data) {
                $('#ProductionOrderDetails').html(data);
                $('#ProductionOrderDetails').fadeIn('fast');
            });
        })
    })
</script>

如果我使用有效的WONumber 手动将该 AJAX 中显示的 URL 输入到浏览器中,它会返回正确的数据。

这是在控制器中被调用的方法:

public PartialViewResult GetDetails(string WONumber)
    {            
        var details = db.vwProductionOrderLookups.Where(x => x.No_ == WONumber).SingleOrDefault();
        return PartialView("_ProductionOrderDetails", details);
    }

编辑

所以,它似乎与URL路径有关。如果我更改它,在对ServerName/WetWashRequest/WetWashRequests/GetDetails 的 AJAX 调用中它可以工作。我猜,我部署错了,我应该在前面需要额外的WetWashRequest....

【问题讨论】:

  • 您在控制台中收到任何消息吗?
  • 您确定GetDetails(string WONumber)method 正在返回有效的局部视图?您是否在 $.get 的成功函数中发出警报以验证它是否被调用?
  • Web 服务器上的@Jonesy 控制台?我必须研究如何做到这一点。这里的小商店有很多帽子,有些我以前从未戴过...... :)
  • @GarySchreiner 在生产环境中,虽然我 100% 肯定相同的代码在从我的机器上运行而不是从 Web 服务器上运行时,但我不能确定相同的代码是否有效。
  • 查看浏览器上的其他开发工具并找到控制台。它会告诉你发生了什么。我 99% 确定它在您的产品服务器上构建了错误的 URL

标签: c# .net ajax asp.net-mvc-5 asp.net-mvc-partialview


【解决方案1】:

这很可能是由于您将开发和生产环境放在不同的文件夹中。最大的问题将是您使用相对(使用/first)或绝对(包括前面的服务器名称)。根据您的环境,确保 /wetWashRequests 文件夹或 API 位于顶层,因为这是 Web 客户端正在寻找的。​​p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2017-06-30
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多