2013-02-11 97 views

回答

0

These是超载了的RenderPartial

 1.RenderPartial(HtmlHelper, String) 

渲染通过使用指定的HTML帮助指定的局部视图。

 2. RenderPartial(HtmlHelper, String, Object) 

呈现指定 局部视图,通过它的当前的ViewDataDictionary 对象的副本,但与模型属性设置为指定的模型。

 3. RenderPartial(HtmlHelper, String, ViewDataDictionary) 

呈现 指定局部视图,其中 指定的ViewDataDictionary对象替换其ViewData的属性。

 4. RenderPartial(HtmlHelper, String, Object, 
 ViewDataDictionary) Renders the specified partial view, replacing 
      the partial view's ViewData property with the specified 
      ViewDataDictionary object and setting the Model property of the view 
      data to the specified model. 
1

是的,你可以使用一个变量作为path参数视图时在服务器上呈现。

@{ 
    string path = "foo/bar"; // a path which the view engine can locate 
} 

<div> 
    @{ Html.RenderPartial(path); } 

    @* OR *@ 

    @Html.Partial(path) 
</div> 

由于问题也标记用JavaScript,我要指出,你不能混用剃须刀(服务器)与客户端(JavaScript)的执行渲染。但是,您可以使用AJAX轻松调用控制器(并将其传递给您想要的任何数据),并且该控制器可以返回呈现的视图。

参见:Html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction

+0

所以,我不能使用Javascript函数,返回一个字符串路径到剃刀,对不对?这也意味着我不能使用“路径”实例变量,我将从JavaScript获取路径。 – user1778595 2013-02-11 14:51:15

+0

正确。但是,您可以通过AJAX请求将您的JavaScript变量传递给控制器​​,并让控制器返回您不同的/自定义的视图。 – 2013-02-11 14:57:56

+0

我试过了,但AJAX无法正常工作。 – user1778595 2013-02-11 17:01:30

0

使用过载:RenderPartial(HtmlHelper, String, Object)

EG。

@{Html.RenderPartial("PartialViewName", new { filePath = model.FilePath});} 
相关问题