Html.Action、html.ActionLink與Url.Action的區別


1.html.ActionLink返回的指向指定controller、指定action的超鏈接標簽<a>標簽.如果沒有指定controller,則默認為本頁面對應的Controller.

如@Html.ActionLink(“鏈接文本”、“someaction”、“somecontroller”,new { id = " 123 " },null)
生成:
< a href = " / somecontroller / someaction / 123 " >鏈接文本</a>

2、Html.Action可以執行一個控制器的action,並將返回結果作為html string。

3.Url.Action返回的是指定控制器指定action的完整URL地址,不含<a>標簽

用法:

<form name="form1" action="<%:Url.Action("Reply","LatestJoinCompany") %>" method="post">

 

<a href="<%:Url.Action("SelectDetail","OutBox",new{letterid=m.LetterID}) %>"><%=m.LetterTitle %></a>

說明:

<%:Url.Action("SelectDetail","OutBox",new{letterid=m.LetterID}) %>

返回/OutBox/SelectDetail?letterid=m.LetterID

 

 

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會省略。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM