ASP.NET MVC3 @ Html.RenderPartial正在抛出CS1502错误

ber*_*wyn 11 c# asp.net razor asp.net-mvc-3

我正在为我的动态Web类构建一个MVC3应用程序,在尝试渲染部分时,我收到以下错误:

CS1502:'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'的最佳重载方法匹配有一些无效的参数

现在,我正在执行的代码是这样的:

<div>
    <h2>Shipping Address</h2>
    @Html.RenderPartial("_AddressPartial");
</div>
Run Code Online (Sandbox Code Playgroud)

现在,我已经搜索了这个,从我看到的,答案都是旧版本的MVC并使用<%%>样式语法并得到System.IO错误而不是System.Web错误我是获得.我确实遵循了他们的建议,并尝试使用和不使用分号,这没有任何区别因为我每次都有YSOD.有任何想法吗?

Mar*_*ell 26

这可能只是因为RenderPartial没有返回任何东西.尝试:

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

要么

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

  • 使用`@ {Html.RenderPartial("_ AddressPartial"); }版本工作!万分感谢! (2认同)

gdo*_*ica 6

请注意,RenderPartial不返回任何值(就像RenderAction方法一样),它会在请求中写入输出.而Partial(就像Action方法一样)返回MvcHtmlString的值.
SO @Html ...必须返回一些值,而@ {...某些代码...}不必.
在您的情况下,如果您想使用renderPartial,请使用它:

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

但是为什么不使用Partial方法,你可以这样使用:

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