HTML.ActionLink vs Url-ul.Acțiune în ASP.NET aparat de Ras

Există vreo diferență între HTML.ActionLinkvsUrl.Acțiune sau acestea sunt doar două moduri de a face același lucru?

Când ar trebui să prefer una peste alta?

Soluția

Da, există o diferență. Html.ActionLink generează o <a href=".."></a> tag întrucâtUrl.Acțiune` returnează doar un url.

De exemplu:

@Html.ActionLink("link text", "someaction", "somecontroller", new { id = "123" }, null)

generează:

<a href="/somecontroller/someaction/123">link text</a>

și Url-ul.Acțiune("someaction", "somecontroller", nouă { id = "123" })` generează:

/somecontroller/someaction/123

Există, de asemenea, Html.Acțiune, care execută un copil controller de acțiune.

Comentarii (8)

Html.ActionLink generează o ` tag automat.

`Url.Acțiune generează numai un url.

De exemplu:

@Html.ActionLink("link text", "actionName", "controllerName", new { id = "" }, null)

generează:

<a href="/controllerName/actionName/id">link text</a>

și

@Url.Action("actionName", "controllerName", new { id = "" }) 

generează:

/controllerName/actionName/

Cel mai bun punct în plus care-mi place este folosind Url-ul.Acțiune(...)`

Creați etichetă ancoră de către propriul dvs., în cazul în care puteți seta propriul dvs. legate de text cu ușurință chiar și cu un alt tag-ul html.


<a href="@Url.Action("actionName", "controllerName", new { id = "id" })">
Comentarii (0)
<p>
    @Html.ActionLink("Create New", "Create")
</p>
@using (Html.BeginForm("Index", "Company", FormMethod.Get))
{
    <p>
        Find by Name: @Html.TextBox("SearchString", ViewBag.CurrentFilter as string)
        <input type="submit" value="Search" />
        <input type="button" value="Clear" onclick="location.href='@Url.Action("Index","Company")'"/>
    </p>
}

În exemplul de mai sus puteți vedea că, Dacă în mod special am nevoie de un buton pentru a face o acțiune, trebuie să o faci cu @Url-ul.Acțiune întrucât, dacă vreau doar un link, voi folosi @Html.ActionLink. Ideea e că atunci când trebuie să utilizați un element(HTML) cu acțiune de url-ul este folosit.

Comentarii (0)

@HTML.ActionLink generează o ancora HTML tag-ul. În Timp Ce @Url-Ul.Acțiune generează oURL` pentru tine. Puteți înțelege cu ușurință de către;

// 1. <a href="/ControllerName/ActionMethod">Item Definition</a>
@HTML.ActionLink("Item Definition", "ActionMethod", "ControllerName")

// 2. /ControllerName/ActionMethod
@Url.Action("ActionMethod", "ControllerName")

// 3. <a href="/ControllerName/ActionMethod">Item Definition</a>
<a href="@Url.Action("ActionMethod", "ControllerName")"> Item Definition</a>

Ambele aceste abordări sunt diferite și că totul depinde de nevoia ta.

Comentarii (0)

Puteți prezenta cu ușurință Html.ActionLink ca un buton, prin utilizarea adecvată de stil CSS. De exemplu:

@Html.ActionLink("Save", "ActionMethod", "Controller", new { @class = "btn btn-primary" })
Comentarii (2)

Am folosit codul de mai jos pentru a crea un Buton și a lucrat pentru mine.

<input type="button" value="PDF" onclick="location.href='@Url.Action("Export","tblOrder")'"/>
Comentarii (1)