我在ASP.NET MVC应用程序中有部分视图:
@Html.Partial("_Comments", Model)
我想让这个部分成为可以从其他应用调用的“插件”。所以,我在我的控制器中创建了一个单独的动作来单独返回这个局部视图:
public ActionResult Embed()
{
return View("_Comments", new CommentsModel());
}
然后可以通过URL [root] / Comments / Embed访问此操作,并返回部分视图的HTML。
是否有一种干净的方法可以将来自此URL的响应嵌入到单独的MVC剃刀视图中(在完全不同的应用中)?
谢谢!
答案 0 :(得分:2)
是否有一种干净的方法可以将来自此URL的响应嵌入到单独的MVC剃刀视图中(在完全不同的应用中)?
这意味着客户端代码,例如:
function getComments() {
$.ajax({ url: '[root]/Comments/Embed',
iframe: true,
success: function (data) {
$("#target-id").html(data);
}
});
}
修改强>
如果您使用this ajax plugin,则设置为
iframe: true
然后你通过iframe transparenlty访问跨域
答案 1 :(得分:0)
我找到了解决方案。
@Html.Raw(new WebClient().DownloadString("[root]/Comments/Embed"))