@Html.Partial和@Html.Action区别

1.首先看一下它们的对等关系

@Html.Partial 对应 @{Html.RenderPartial();}
@Html.Action 对应 @{Html.RenderAction();}

以上相互对应的语句,它们实现的功能是一样的,不同的就是写法,

2.Action加载方法的视图,执行 Controller → Model → View 的顺序,然后把产生的页面带回到原来的View中再回传。而Partial直接加载视图文件内容

[email protected]可以直接提供用户控件名作为参数,而Html.Action需要有对应的Action,在Action内部返回PartailResult(即retun PartialView())。

如:下面例子可以说明@Html.Partial的用法

        public ActionResult Index()
        {
            string[] txtArry = { "1", "2", "3" };
            ViewData["txt"] = "欢迎";
            return View(txtArry);
        }

index.cshtml页面

<body>
    <div>
        @*这里应该显示:1*@
        @Model[0]
    </div>
    <div>
        @*调用msg1.cshtml*@
        @Html.Partial("msg1")
    </div>
</body>

如果@Html.Partial("msg1")没有传具体的值,那么它就会默认把index里的Model值传过去,如果有具体的参数,那么msg1里的Model值就是为传过来的参数值

如:@Html.Partial("msg1",(object)Model[1])

msg1.cshtml页面

<body>
    <div>
        @Model[0][email protected]["txt"]
    </div>
</body>

总结:用@Html.Partial(页面),那么这个页面的里的数据源是“调用页面:index.cshtml”给的,只要index页面可以接受到的viewdata那么msg1就可以接受,index页面就是msg1页面的衣食父母。最后根据不同的用途来选择吧

时间: 2024-10-08 06:34:09

@Html.Partial和@Html.Action区别的相关文章

MVC+EF 随笔小计——分部视图(Partial View)及Html.Partial和Html.Action差异

Partial View指可以应用于View中以作为其中一部分的View的片段(类似于之前的user control), 可以像类一样,编写一次, 然后在其他View中被反复使用. 一般放在"Views/Shared"文件夹中以共享. 创建Partial View:一般直接右键"Views/Shared"文件夹添加分部视图. 使用Partial View有两类helper : Html.Partial / Html.RenderPartial Html.Action

[ASP.NET MVC]@Partial 和@RenderPartial的区别

@Partial 和@RenderPartial的区别 Html.partial和RenderPartial的用法与区别 Html.partial和RenderPartial都是输出html片段,区别在于Partial是将视图内容直接生成一个字符串并返回(相当于有个转义的过程),RenderPartial方法是直接输出至当前 HttpContext(因为是直接写入响应输出流,所以性能好).因此它们在视图中的使用方式是不同的: @{Html.RenderPartial("SomeView"

笔记:Html.Partial和Html.Action

1.带有Render的方法返回值是void,在方法内部进行输出:不带的返回值类型为MvcHtmlString,所以只能这样使用:@Html.Partial 对应 @{Html.RenderPartial(....);}@Html.Action 对应 @{Html.RenderAction(....);}2.Html.Partial可以直接提供用户控件名作为参数,而Html.Action需要有对应的Action,在Action内部返回PartailResult(即retun PartialView

Html.Partial(&quot;&quot;)与Html.RenderPartial(&quot;&quot;)区别

文章有点长,但大多是代码,看看很快的,不要压力太大.网上有很多关于这两个方法的区别,都说出了它本质的区别(不看代码,只看这个结论,就已经足够了,如果觉得有必要从代码中得出这个结论,那就继续往下看),这里从代码中跟大家说说它们的区别,这两个扩展方法都是用来加载部分视图,先说下它们本质上的区别, RenderPartial是直接返回一个视图,而Partial返回的是视图的字符串,即一个返回视图对象,一个返回字符串.内部做了什么呢?接下来详细介绍.1.Partial 反编译工具中对这个扩展类的描述如下

Html.ActionLink与Url.Action区别

一.@Html.ActionLink()概述 在MVC的Rasor视图引擎中,微软采用一种全新的方式来表示从前的超链接方式,它代替了从前的繁杂的超链接标签,让代码看起来更加简洁.通过浏览器依然会解析成传统的a标签.除此之外,还允许我们添加Html属性.下面来看看@Html.ActionLink()的使用方法吧. 二.@Html.ActionLink()的使用详解 1. @Html.ActionLink("linkText", "actionName") 这种重载的第

mutation和action区别

const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } }, actions: { increment (context) { context.commit('increment') } } }) 1.流程顺序 "相应视图->修改State"拆分成两部分,视图触发Action,Action再触发Mutation. 2.角色定位 基于流程

Html.Partial,Html.RenderPartial Html.Action,Html.RenderAction区别

@Html.Partial,@Html.RenderPartial      这两者的共同点都是在视图中去调用另外一个视图,区别是   Html.Partial 有返回值 ( MvcHtmlString ),使用的时候  可以用一个变量存储这个返回值,或者使用 @直接进行输出. 而Html.RenderPartial  的返回值是 Void ,他的内部会自动帮我们 Response输出内容,所以无法用变量进行存储, 使用的时候 需要 @{ Html.RenderPartial() ;} 来调用

Html.Partial 和 Html.RenderPartial 、Html.Action 和 Html.RenderAction区别

Html.Partial 和 Html.RenderPartial不需要为视图指定路径和文件扩展名.因为运行时定位部分视图与定位正常视力使用的逻辑相同.RenderPartial不是返回字符串,而是直接定写入响应输出流.必须把RenderPartial放入代码块中.如:@{Html.RenderPartial("LeftMenu");}@Html.Partial("LeftMenu") Html.Action 和 Html.RenderAction可以指定视图和控制

MVC部分视图的使用(Html.Partial/RenderPartial、Html.Action/RenderAction、RenderPage)

ASP.NET MVC 里页面往往会有许多重用的地方,可以进行封装重用. 使用部分视图有以下优点: 1. 可以简写代码. 2. 页面代码更加清晰.更好维护. 在视图里有多种方法可以 加载部分视图,包括: Partial() .RenderPartial() . Action() .RenderAction() . RenderPage() 方法 一.Partial与RenderPartial 1.Razor 语法: @Html.Partial() 与 @{Html.RenderPartial()