Skip to main content

asp.net mvc different between ViewComponent Html.Partial Html.Action

asp.net mvc ViewComponent Html.Partial Html.Action的区别

mvc4及以前,通常使用Html.Partial("viewName"),Partial函数的返回值为MvcHtmlString,直接输出在Rozar模版中。
Html.RenderPartial("viewName")的返回值是void,输出内容流中。
查看mvc5的源代码发现Partial也是调用RenderPartial,然后输出到TextWriter来转换为字符串。
上面两个不用controller,不通过action。

Html.Action的返回值PartialView(),通过调用action来获取PartialView。
例如,通过ajax调用action来更新客户端Partial输出的内容。

mvc5中新增的ViewComponent,所有的都由ViewComponent继承而来。总体来说可认为是一个增强版Partial。
能有自己单独的代码文件,又不用的实现controller。

ref: http://www.cnblogs.com/gesenkof99/archive/2013/06/03/3115052.html
http://stackoverflow.com/questions/29823507/why-should-we-use-mvc-6-feature-view-components-over-partial-view-what-is-the-d
http://www.tugberkugurlu.com/archive/exciting-things-about-asp-net-vnext-series-mvc-view-components

Comments

Popular posts from this blog

PSP 三国无双 大蛇传 人物图片

PSP三国无双 大蛇传 人物图片(Google Picasa相册) 现在还不全,太多了。。。(2008-03-23) 搞完了,体力活啊。(2008-04-20) 暂时放弃吧,那个空间到期很久了,忘了更新这里了。什么时候找到地方放再跟新。(2009-04-29) 上传到Google Picasa(2009-09-25)

一点感想

久久没来,最近在家google基本无法使用了,无奈用自由门翻墙而出,看到自己以前所发的东西,感慨良多。想起硬盘上魔兽截图无数,说不定哪天出个意外,不如发帖留恋。

asp.net Single Sign-On(SSO) from SAP

公司的主系统是SAP的东西,有的时候老板想要一些小的新功能或是某个部门需要一个自己使用的小系统又不想买SAP的东西(贵啊),只有自己写和使用一些第三方免费或是开源的系统,这个时候就难免涉及到 Single Sign-On 。而在asp.net 2.0下是非常容易实现的。有SAP提供的“Sapsecu.dll”,“sapssoext.dll”2个dll再加上由公司SAP系统提供的"verify.pse"就足够了。 第一步 复制Sapsecu.dll到system32目录,并使用Rersrv32注册。 第二步 在项目里添加对sapssoext.dll的引用,vs2005会自动生成Interop.SAPSSOEXT.dll来让.net使用。 第三步 在你项目的根目录创建sap目录,并将SAP系统那边提供的verify.pse复制过去。位置倒到不是一定要在这里,只要你找得到就好。 第四步 在SAP系统那边,需要生成一个类似:http://yourserver/login.aspx?sso=werwerwerwe的链接,当然具体的页面需要你和那边的管理员商量来决定。这个链接是有时效性的,我在做测试的时候他们给的测试链接通常只能用一天。现在我们要做到就是我们这边的编码,在login.aspx的page_load里面实现: protected void Page_Load(object sender, EventArgs e) {   string sso= Request.QueryString["sso"];   SAPSSOEXT.SSO2Ticket objSSO = new SAPSSOEXT.SSO2Ticket();   objSSO.CryptLib = "sapsecu.dll";   string strKeypath = Server.MapPath("~/sap/verify.pse");    //放在根目录比较容易找   object tt;   tt = objSSO.EvalLogonTicket(strTicket, strKeypath, String.Empty); ...