2013-12-12 22 views
0
我的web應用程序JSON是不沃金

我有我的看法如下腳本: -調用的操作方法返回時,我發表在IIS

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#Rack_DataCenterID").change(function() { 
      var idDC = $(this).val(); 
      $.getJSON("/Rack/LoadZoneByDataCenter", { id: idDC }, 
      function (MedicineData) { 
       var select = $("#Rack_ZoneID"); 
       select.empty(); 
       select.append($('<option/>', { 
        value: null 
       })); 
       $.each(MedicineData, function (index, itemData) { 

        select.append($('<option/>', { 
         value: itemData.Value, 
         text: itemData.Text 
        })); 
       }); 
      }); 
     }); 

它調用下面的操作方法: -

[CheckUserPermissions(Action = "Edit", Model = "Rack")] 
public JsonResult LoadZoneByDataCenter(string id) 
{ 
    var zonelist = repository.getrealtedzone(Convert.ToInt32(id)).ToList(); 

    var ZoneData = zonelist.Select(m => new SelectListItem() 
    { 
     Text = m.Name, 
     Value = m.ZoneID.ToString(), 

    }); 

    return Json(ZoneData, JsonRequestBehavior.AllowGet); 
} 

上面的工作很好,但是在我將應用程序發佈到iis上面的停止工作之後,沒有json數據會填充下拉菜單。任何人都可以建議是什麼導致這個問題? 感謝

+2

你檢查你的網絡控制檯來查看該請求是否通過在所有去的網址是什麼? – PSL

+0

你能否解釋你的觀點? –

+0

我的意思是在你的瀏覽器中使用網絡控制檯,例如:chrome(do f12)它會顯示你的請求。你可以檢查它,看看它返回什麼狀態碼,你得到什麼反應,或者它是否到服務器等.. – PSL

回答

1

我的直覺是這是你的問題是:

$.getJSON("/Rack/LoadZoneByDataCenter", { id: idDC }, 

專門

"/Rack/LoadZoneByDataCenter" 

很多時候,當你發佈到比本地開發版本以外的東西,相對URIs更改。

+0

所以我什麼應該寫嗎? –

+0

當您在本地測試時,直接URL是什麼? 發佈後直接鏈接的URL是什麼? –

+0

本地它是localhost:60123在IIS上是localhost/TestApp .. –

2

取而代之的是一個$.getJSON("/Rack/LoadZoneByDataCenter", { id: idDC },應該做

$.getJSON("@Url.Content("~/Rack/LoadZoneByDataCenter")", { id: idDC }, 

解決

+0

以及URl.content將如何解析URL? –

相關問題