2012-02-22 9 views
1

私はASP.NET MVCアプリケーションでの部分図を持っている:URLを剃刀ビューに埋め込むためのきれいな方法はありますか?

@Html.Partial("_Comments", Model) 

私は他のアプリから呼び出すことができ、この部分は、「プラグイン」したいです。だから、私は一人で、この部分ビューを返すために、私のコントローラ内の別々のアクションを作成しました:

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

このアクションは、URL [ルート] /コメント/埋め込みコードを介してアクセスし、部分的なビューのHTMLを返すことができます。

このURLからのレスポンスを別のMVCカミソリビュー(まったく別のアプリ)に埋め込むための明確な方法はありますか?

ありがとうございます!

答えて

0

解決策が見つかりました。

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

これはちょっと恐ろしいビューコードです...たぶんhtmlhelperの吸盤をポップします – dotjoe

+0

このコードについて何が怖いですか?私は、余分なコードを追加したり、追加したりすることなく、同僚が簡単に実装できるソリューションを探しています。 – Paul

+0

これはサーバー上でダウンロードしているためです...そのサイトがダウンすると、このページも表示されます(タイムアウトを短く設定しない限り)。私はajaxソリューションを好むだろう。 – dotjoe

2

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

これは、例えば、クライアント側のコード、意味:あなたは
iframe: true
を設定する場合は、this ajax pluginを使用する場合は

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

編集

を、あなたはでクロスドメインにアクセスiframe transparenlty

+0

私はstackoverflowに来る前にこのアプローチを試していました。これはドメイン間の要求に問題があります。 'Origin http:// localhost:42347はAccess-Control-Allow-Originで許可されていません。 'というエラーが表示されます。 – Paul

+0

できるだけ' iframe'を使用しないでください。 JSONPでいくつか試しました。応答を得るまでは得ましたが、JSONではないため、解析エラーが発生します。 – Paul

+0

このページにはどのプラグインがありますか? – Paul

関連する問題