2009-08-10 63 views
4

由于某些特定的原因,我需要使用jQuery的load()方法将网页馈送到div层。jQuery - ASP.NET MVC - .load和RenderPartial

大多数这些网页都是普通的.html文件。

但是对于某些人来说,有一些数据处理正在进行 - 我希望能够利用ASP.NET MVC模型(该网站是内置的) - 但这对于普通的.html页面来说是不可能的 - 所以我需要使用.aspx/.ascx。

我想知道这是否可行,是否有人知道我是否可以加载从ASP.NET MVC中的.ascx ViewPage检索到的图层?

+0

你能详细一点更多信息,请?我不清楚你的问题。 – CmdrTallen 2009-08-27 18:43:51

回答

7

您需要使用视图模型生成的html可以在局部视图中完成。

造成局部视图(partialview.ascx),并在控制器创建得到的ActionResult

public ActionResult partialview(){ 
    //your code 
    return partialview(model); 
} 

现在在你的HTML页面的方法,使用

$.get("controller/partialview", {any data you want to send}, function(html) { 
    $("#divToLoad").html(html); 
}); 
1

您也可以为静态html文件创建一个渲染部分方法。你可以检查这个问题如何:ASP.Net MVC: RenderPartial for a static HTML file

+0

不,这不完全是我的意思... 我有一个html文件,在它内部,我需要绘制一个局部视图或调用一个。它不能是.aspx/.ascx,它必须是.html文件。 – Ciel 2009-08-18 15:32:39

0

除非我不理解的东西,你可以很容易地通过一些手段做到这一点。例如,你可以设置一个'....../{filename} .html'的路由,将HTML文件作为一个字符串进行处理,你可以将所有的HTML文件转换成.ascx文件并返回一个局部视图......等等等等。

+0

我可以打扰你详细说明吗?我对MVC的路由非常陌生,它可以做什么/已经做了什么。 – Ciel 2009-08-10 17:59:04

+0

我无法使用静态.html文件的最大原因是因为我需要在某些情况下使用视图模型进行一些工作。 – Ciel 2009-08-10 18:06:06

0

如果我明白你的好,你所要做的就是在你所谓的行动回报的

PartialView() 

代替

View() 

(或任何你在正常情况下返回)。

+0

我不能使用PartialView,它不会返回到MVC页面,而是返回到普通的普通.html页面。这是我的问题。 我需要在正常的.html页面中绘制局部视图。 – Ciel 2009-08-18 15:31:05