2016-09-13 25 views
0

我已經包含以下幾行代碼,其中成功函數中的結果包含[object Object]形式的必要數據(考慮結果具有Name,Category和以[object Object]的形式描述)。將ajax成功結果傳遞給局部視圖

$.ajax({ 
     url: rootUrl + 'Admin/EditRSS', 
     type: "GET", 
     data: { FeedId: FeedId }, 
     dataType: 'json', 
     success: function (result) { 
      // do something here     
     }, 
     error: function() { alert("error") } 

    }); 

現在我想在其中加載的局部視圖

$("#editFeedDialog").dialog({ 

    title: "Edit Feed", 
    width: '60%' 

}); 
<div id="editFeedDialog" style="display: none; background-color: aliceblue;" > 

@Html.Partial("EditFeed",//pass result as model) 

</div> 

控制器

[HttpGet] 
    public ActionResult EditFeed(int FeedId) 
    { 

     using (DbContext dataContext = new DbContext()) 
     { 
      var feedDetails = (from u in DataContext.FeedMaster 
         where u.FeedMasterId == FeedId 
         select u).FirstOrDefault(); 

      FeedMaster r = new FeedMaster(); 

      r.FeedMasterId = FeedId; 
      r.FeedName = feedDetails.FeedName; 
      r.FeedCategory = feedDetails.FeedCategory; 
      r.FeedDescription = feedDetails.FeedDescription; 
      return Json(r, JsonRequestBehavior.AllowGet); 

     } 


    } 

要麼我應該能夠把它作爲一個模型,一個jQuery對話框,使用此結果以我的部分觀點或至少我應該能夠在 內使用它我是新來的ajax。那麼有誰能幫我解決這個問題嗎?

+0

做'$( 「#editFeedDialog」)HTML(結果);''對阿賈克斯success'並返回PartialView這將返回Html內容。 –

+0

因爲結果是[對象的對象]的形式,我要的是像

result.Name

result.Category

result.Description

@ParthTrivedi – pallavi

+0

請寫出你的控制器操作cdoe這裏。 –

回答

2

您無法將JavaScript數據傳遞到Razor方法。這兩者發生在請求管道的完全不同的時間。也就是說,Razor在服務器返回響應之前運行服務器端,而JavaScript在服務器返回響應之後運行客戶端。

如果要使用從AJAX調用返回的數據加載partial,請讓AJAX端點返回部分數據而不是數據。然後,您不需要額外的步驟,只需將AJAX調用的HTML響應直接插入DOM即可。

0

有兩種方法可以完成此:

  1. 返回結果爲HTML。
  2. 以JSON形式返回結果。

由於您要返回JSON數據,因此以下代碼段應該適用。

JAVASCRIPT:

$.ajax({ 
     url: @url.action('EditFeed','YourController'), 
     type: "GET", 
     data: { FeedId: FeedId }, 
     dataType: 'json', 
     success: function (result) { 
      $('#editFeedDialog').empty().html('<p>'+result.FeedName+'</p><p>'+result.FeedCategory+'</p><p>'+result.FeedDescription+'</p>');   
     }, 
     error: function() { alert("error") } 

    }); 

HTML:

<div id="editFeedDialog" style="background-color: aliceblue;"></div> 
+1

這將解決作者的問題。 – Kramer