来自RAZOR中不同文件夹的RenderPartial

All*_*cus 11 c# asp.net razor asp.net-mvc-3

我一直在尝试将我的aspx页面转换为cshtml,并且在从另一个文件夹渲染部分页面时遇到问题.

我以前做的:

<% Html.RenderPartial("~/Views/Inquiry/InquiryList.ascx", Model.InquiryList.OrderBy("InquiryId", MvcContrib.Sorting.SortDirection.Descending));%>
Run Code Online (Sandbox Code Playgroud)

我认为相当于:

@Html.RenderPartial("~/Views/Inquiry/_InquiryList.cshtml", Model.InquiryList.OrderBy("InquiryId", MvcContrib.Sorting.SortDirection.Descending))
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,我收到以下错误.

CS1973:'System.Web.Mvc.HtmlHelper'没有名为'Partial'的适用方法,但似乎有一个名称的扩展方法.无法动态分派扩展方法.考虑转换动态参数或调用扩展方法而不使用扩展方法语法.

如何使用Razor视图引擎实现这一目标?

GvS*_*GvS 24

的RenderPartial不返回一个字符串或IHtmlString值.但是通过在响应中调用Write来进行渲染.

您可以使用Partial扩展,这将返回一个MvcHtmlString

 @Html.Partial( ....
Run Code Online (Sandbox Code Playgroud)

要么

 @{ Html.RenderPartial(....);  }
Run Code Online (Sandbox Code Playgroud)

如果你真的想要RenderPartial


Sco*_*ott 7

编译器无法选择正确的方法,因为您的模型是动态的.将通话更改为:

@Html.RenderPartial("~/Views/Inquiry/_InquiryList.cshtml", (List<string>)Model.InquiryList)
Run Code Online (Sandbox Code Playgroud)

或者查询列表的任何数据类型.