6 ответов:
Да, есть разница.
Html.ActionLinkсоздает<a href=".."></a>тег, а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.Действие который выполняет действие дочернего контроллера.
Html.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>и
@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>
<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.Действие в то время как если я просто хочу ссылку, я буду использовать @Html.ActionLink. Дело в том, что вы должны использовать какой-то элемент(HTML) с url действия используется.
@HTML.ActionLinkсоздаетHTML anchor tag. В то время как@Url.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>оба эти подхода различны, и это полностью зависит от ваших потребностей.
вы можете легко представить Html.ActionLink как кнопка с помощью соответствующего стиля CSS. Например:
@Html.ActionLink("Save", "ActionMethod", "Controller", new { @class = "btn btn-primary" })
я использовал код ниже, чтобы создать кнопку, и это сработало для меня.
<input type="button" value="PDF" onclick="location.href='@Url.Action("Export","tblOrder")'"/>
Comments