MVC4在使用嵌套的@Html.RenderPartial()时出现编译器错误消息:CS1502。

15 浏览
0 Comments

MVC4在使用嵌套的@Html.RenderPartial()时出现编译器错误消息:CS1502。

我正在使用MVC 4,并想要使我的视图更加整洁,因此决定创建多个局部视图,并在渲染期间将它们组合在一起。

当要呈现的视图有少量@Html.RenderPartial(\'path\\to\\my\\partialView.cshtml\')时,这将起作用,但如果该partialView.cshtml具有进一步定义在其中的其他PartialView.cshtml,则失败。

我使用RenderPartial或Partial方法时出现错误,如:

error CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
error CS1503: Argument 1: cannot convert from 'void' to 'System.Web.WebPages.HelperResult'

在MVC4中,我们是否有办法整理大型视图标记文件?即:尝试逐步用其他局部视图组合部分视图。

编辑

只是为了提供更多细节。

我的移动视图如下:

文件:ManageLoads.Mobile.cshtml

位置:Views->Shipper->ManageLoads

在此视图中,我有像这样的代码:

            @Html.Partial("~/Views/Shipper/_DashboardPartial.cshtml")
                

{{Message}}

 

这部分没有任何问题。但是,如果在_DashboardPartial.cshtml中引用另一个局部视图,则会失败。

   {@Html.RenderPartial("~/Views/Shipper/mobilePartials/_MyWarehouse.cshtml");}

这样就会中断并抛出错误,但是如果我将“_MyWarehouse.cshtml”的内容复制粘贴到那里,它就会重新开始工作。我已验证了到_MyWarehouse.cshtml的路径是正确的,因此我怀疑嵌套的RenderPartial方法导致了问题。

问候

Kiran

admin 更改状态以发布 2023年5月22日
0
0 Comments

你有几个选择,比如:

  • 使用自定义html助手(对于短的一般html代码);

  • 使用RenderPartial或RenderAction,如此处所说的那样。

(您还应该考虑使用类似“〜/Views/someController/etc/to/my/partialView.cshtml”的根路径,甚至将代码移到一些共享视图“〜/Views/Shared/...”中。 但这完全取决于您的选择)。

编辑:

请查看这篇文章。它解释了如何使用上面提到的方法。它必须是这样:

@{ Html.RenderPartial("ViewName");  }

@Html.Partial("ViewName")

0
0 Comments

我首先发现的问题是你的Html.RenderPartial语法不正确。@符号应该在大括号外面,像这样:

@{Html.RenderPartial("~/Views/Shipper/mobilePartials/_MyWarehouse.cshtml");}

其次,我怀疑Html.Partial和Html.RenderPartial的组合可能会在这里引起一些问题。尝试使用上面的语法结合Html.RenderPartial来看是否可以解决你的错误。

0