2015-06-18 52 views
0

我想從發送如下面的請求返回JSON形式的模型:控制檯登錄返回HTML頁文本而不是JSON

$(document).ready(function() { 
     (function(){ 
      console.log("ran"); 
      $.ajax({ 
       type: "GET", 
       url: "https://clas.uconn.edu/Employees/Edit/22", 
       success: function(data) { 
        console.log("Success: " + data); 
        empData = data; 
       } 
      }); 
     })(); 
    }); 

我對這種方法控制器是:

// GET: Employees/Edit/5 
    public ActionResult Edit(int? id) 
    { 
     var id = employee.id; 
     if (id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 

     if (employee == null) 
     { 
      return HttpNotFound(); 
     } 

     return new JsonResult() { Data = employee, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
     Console.WriteLine("error"); 
    } 

但是,即使這些控制器操作都沒有返回視圖,我仍然在CONSOL日誌中獲取完整的HTML頁面。有任何想法嗎?

編輯: 添加數據類型後,我得到一個錯誤在控制檯日誌中說:

GET http://localhost:59909/Employees/EmployeeLookupDisplay 
net::ERR_CONNECTION_REFUSED 
+0

你的動作控制器的哪個部分被擊中?據我所知,HttpNotFound()將返回整個HTML頁面。 – Kamo

+0

您的控制器操作是否成功? – Iceburg

+0

什麼是從MVC控制器接收到的HTML頁面,通常會出現錯誤,死亡黃色屏幕,所以使用chrome dev工具或其他東西來呈現該頁面(單擊預覽) –

回答

0

,因爲在您的請求出錯的地方它返回整個頁面。

給你的ajax調用添加塊錯誤,在xhr.上添加console.log你會得到更多關於這個錯誤的更多信息。

您可以嘗試的是在POST上發出請求並檢查C#代碼上下文的屬性。有時添加dataType和編碼有助於請求。

此外,請檢查您的瀏覽器開發人員工具返回請求的狀態。在Chrome中,網絡選項卡顯示所有請求及其狀態。

0

試試這個,但根據你的代碼,它總是返回HTTP而不是HTML,這是HTML頁面。如果你有數據給員工。我的意思是你的控制器行爲獲得成功沒有任何錯誤那麼你可以嘗試一下。

 $.ajax({ 
      type: "GET", 
      url: "https://clas.uconn.edu/Employees/Edit/22", 
      dataType: "json", 
      success: function(data) { 
       console.log("Success: " + data); 
       empData = data; 
      } 
0

,而不是返回new JsonResult() { Data = employee, JsonRequestBehavior = JsonRequestBehavior.AllowGet };也許,只是return Json(employee, JsonRequestBehavior.AllowGet);'

另一件事,我看到:

你在做var id = employee.id;第一線 - >其中employee從何而來?也許錯誤在那裏。

相關問題