@Html.RenderPartial vs @Html.Partial

       在Razor中,代码1是不能执行的, 而代码2可以

代码1

@Html.RenderPartial("SomeView")

代码2

@Html.Partial("SomeView")

RenderPartial 需要像代码3这样使用

代码3

@{Html.RenderPartial("SomeView");}
       为啥呢?

       因为RenderPartial返回Void, Partial返回MvcHtmlString,目前看起来是这样的(没有深究):在cshtml中,没有花括号的,例如@Html.xx是需要一个返回对象用于呈现的,而有花括号的@{Html.xxx;}是花括号里的代码运行了一下。RenderPartial内有一个呈现的动作,完成呈现功能,但没有返回任何对象给cshtml用于呈现,所以就会报错。与之类似的还有 RenderAction和Action



发布了32 篇原创文章 · 获赞 4 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章