2011-10-10 28 views

答えて

368

はい、違いがあります。 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" })は生成:また、子コントローラのアクションを実行Html.Actionあり

/somecontroller/someaction/123 

。あなたは、私は特にいくつかのアクションを行うためのボタンが必要な場合、私はちょうど、リンクをしたい場合は、私が使用するのに対し、私は、@ Url.Actionでそれをしなければならないことがわかります上記の例では

+0

うーん....場合にはページ上のリンクの何百もあるので、それはアンカーのための完全なHTMLを生成するので、その後HTML.ActionLinkは、右遅れるかもしれません? –

+12

@ PankajUpadhyay、asp.net mvcアプリケーションでURLを扱うときは、常にhtmlまたはurlヘルパーを使用する必要があります。100分の1のリンクがあっても、それらを生成するには 'Html.ActionLink'を使います。このようなマイクロ最適化を行わないでください。あなたはあなたの意見に醜いコードで終わるでしょう。 –

+1

datは、リンクをレンダリングする際に、すべての状況でUrl.ActionよりもHtml.ActionLink()を優先する必要があることを意味します。 BTWでは、asp.net WebサイトのMicrosoft公式チュートリアル(MVC Music Store)は、リンクが必要なときはいつも、Url.Actionをほとんどの時間使いました。 –

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

@ Html.ActionLink 。 アクションURL(url)が使用されている要素(HTML)を使用する必要があるときです。

29

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

以下のコードを使用してボタンを作成してくれました。

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

することはでき、適切なCSSスタイルを使用して、ボタンとしてHtml.ActionLinkやすい存在。たとえば :

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

これは、HTML.ActionLinkとUrl.Actionの違いについて、元の質問には答えていません。おそらく答えの代わりにコメントを使うべきでしょう。 – Fencer04

関連する問題