2012-02-22 23 views
1

我有一個ASP.NET MVC應用程序的局部視圖:有沒有一種乾淨的方式來在剃刀視圖中嵌入網址?

@Html.Partial("_Comments", Model) 

我想使這部分的一個「插件」,可以從其他應用程序調用。所以,我在我的控制器中創建一個單獨的行動來回報獨此局部視圖:

public ActionResult Embed() 
{ 
    return View("_Comments", new CommentsModel()); 
} 

這個動作就可以通過URL [根] /評論/嵌入訪問和返回的局部視圖的HTML。

有沒有一種乾淨的方式來嵌入從一個單獨的MVC剃刀視圖(在一個完全不同的應用程序)這個URL的響應?

謝謝!

回答

0

我找到了解決方案。

@Html.Raw(new WebClient().DownloadString("[root]/Comments/Embed")) 
+0

這是有點可怕的觀點代碼...也許彈出一個HTMLhelper吸盤 – dotjoe 2012-02-22 22:16:58

+0

什麼嚇到你這個代碼?我正在尋找一種解決方案,我的同事可以輕鬆實現,無需包含或編寫太多額外的代碼。 – Paul 2012-02-22 22:19:23

+0

,因爲它正在服務器上下載......如果該網站發生故障,那麼該頁面(除非設置較短的超時)。我更喜歡ajax解決方案。 – dotjoe 2012-02-22 23:35:15

2

Is there a clean way to embed the response from this URL in a separate MVC razor view (in an entirely different app)?

這意味着客戶端代碼,例如:

function getComments() { 
    $.ajax({ url: '[root]/Comments/Embed', 
      iframe: true, 
      success: function (data) { 
     $("#target-id").html(data); 
    } 
    }); 
} 

編輯

如果你使用this ajax plugin,如果設置
iframe: true
則訪問由跨域iframe透明度

+0

我已經嘗試過這種方法,纔來到stackoverflow。這對跨域請求有問題。我得到的錯誤:'Origin http:// localhost:42347不被Access-Control-Allow-Origin所允許。' – Paul 2012-02-22 21:16:49

+0

如果可能的話,我想避免使用iframe。我用'JSONP'試了幾件事。只要得到響應,但由於它不是JSON,它會引發解析錯誤。 – Paul 2012-02-22 21:31:25

+0

哪個插件是在該頁面上? – Paul 2012-02-22 21:41:19

相關問題