Pan*_*yay 290 asp.net-mvc razor asp.net-mvc-3
HTML.ActionLinkvs 之间有什么区别,Url.Action或者只是两种方式做同样的事情?
我什么时候应该更喜欢一个?
Dar*_*rov 487
是,有一点不同.Html.ActionLink生成<a href=".."></a>标记,而Url.Action只返回一个网址.
例如:
@Html.ActionLink("link text", "someaction", "somecontroller", new { id = "123" }, null)
Run Code Online (Sandbox Code Playgroud)
产生:
<a href="/somecontroller/someaction/123">link text</a>
Run Code Online (Sandbox Code Playgroud)
并Url.Action("someaction", "somecontroller", new { id = "123" })生成:
/somecontroller/someaction/123
Run Code Online (Sandbox Code Playgroud)
还有Html.Action执行子控制器操作.
Pra*_*bhe 40
Html.ActionLink<a href=".."></a>自动生成标签.
Url.Action 只生成一个网址.
例如:
@Html.ActionLink("link text", "actionName", "controllerName", new { id = "<id>" }, null)
Run Code Online (Sandbox Code Playgroud)
产生:
<a href="/controllerName/actionName/<id>">link text</a>
Run Code Online (Sandbox Code Playgroud)
和
@Url.Action("actionName", "controllerName", new { id = "<id>" })
Run Code Online (Sandbox Code Playgroud)
产生:
/controllerName/actionName/<id>
Run Code Online (Sandbox Code Playgroud)
我喜欢的最佳加分是使用 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>
Run Code Online (Sandbox Code Playgroud)
小智 12
<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>
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,您可以看到如果我特别需要一个按钮来执行某些操作,我必须使用@ Url.Action,而如果我只想要一个链接,我将使用@ 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>
Run Code Online (Sandbox Code Playgroud)
这两种方法都不同,完全取决于您的需求.
小智 5
您可以使用适当的 CSS 样式轻松地将Html.ActionLink呈现为按钮。例如:
@Html.ActionLink("Save", "ActionMethod", "Controller", new { @class = "btn btn-primary" })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
415888 次 |
| 最近记录: |