Html.Action返回值为MvcHtmlString
Html.RenderAction返回值为void
因此注定了它们的行为是不同的。
Html.RenderAction必须写在@{}内,直接有Response对象输出。
Html.Action也可以直接写在界面上,也可把该值赋值给某一变量,处理后在写页面上。
Html.Action更灵活一点。
@{ Html.RenderAction("Index", "Import");}
@Html.Action("Index", "Import")
@Html.ActionLink返回值也是MvcHtmlString
@Url.Action返回值也是string
MvcHtmlString 本质上也就是string,两者都可以直接写在页面上。
@Html.ActionLink("mylink"," CCC ", "Import")
@Url.Action("CCC", "Import")
不同点在于Html.ActionLink会生成<a href="/Import/CCC">mylink</a>,带<a>标签,而Url.Action直接生成的是string。没有任何tag标签。
注意:Action指定为Index的时候,ASP.NET会省略。