HTML和HTML有什么区别吗?ActionLink vs Url。行动还是它们只是做同一件事的两种方式?

什么时候我应该选择其中一个而不是另一个?


是的,这是有区别的。超文本标记语言ActionLink生成一个<a href="..></a>标签while Url。Action只返回一个url。

例如:

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

生成:

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

和Url。Action("someaction", "somecontroller", new {id = "123"})生成:

/somecontroller/someaction/123

还有Html。执行子控制器操作的操作。


<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>
}

在上面的例子中,你可以看到,如果我特别需要一个按钮来做一些动作,我必须用@Url来做。Action,而如果我只是想要一个链接,我会使用@Html.ActionLink。 重点是当你必须使用一些元素(HTML)的动作url被使用。


超文本标记语言ActionLink生成一个<a href="..></a>标签自动。

Url。Action只生成一个url。

例如:

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

生成:

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

and

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

生成:

/controllerName/actionName/<id>

我喜欢的最佳附加点是使用Url.Action(…)

你正在创建锚标签由你自己,你可以设置自己的链接文本很容易,甚至与一些其他html标签。

<a href="@Url.Action("actionName", "controllerName", new { id = "<id>" })">

   <img src="<ImageUrl>" style"width:<somewidth>;height:<someheight> />

   @Html.DisplayFor(model => model.<SomeModelField>)
</a>

我使用下面的代码创建了一个按钮,它为我工作。

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

你可以很容易地呈现Html。通过使用适当的CSS样式将ActionLink作为按钮。 例如:

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

@HTML。ActionLink生成一个HTML锚标记。尽管。Action为您生成一个URL。你可以通过;

// 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>

这两种方法都是不同的,完全取决于你的需要。