【解決方法】@url.action() と @html.action() の違いは何ですか

プログラミングQA

[ad_1]

リダイレクトしていました コントローラへの表示 .Net.しかし、私が書くとき

@Url.Action("ActionMethod","Controller")

ページが正常にリダイレクトされ、ページビューのソースを確認すると、生成されていました 私のコントローラーへのURL.しかし、誤って入力したとき

@Html.Action("ActionMethod","Controller")

それは私のコントローラーにリダイレクトされず、私のページのビューソースをチェックしたとき、それは私のコントローラーの名前だけを生成していました。

私が試したこと:

@Url.Action(“ActionMethod”,”Controller”)
@Html.Action(“ActionMethod”,”Controller”)

解決策 1

@Url.アクション()

指定されたアクション名、contrillername、ルート オブジェクトに従って URL を生成します。
8 つのオーバーロード メソッドが含まれています。

かみそり
@Url.Action("ActionMethod","Controller")

@Html.Action()

コントローラーで子アクションを呼び出し、結果として Html 文字列を返します。
6 つのオーバーロード メソッドが含まれています。

かみそり
@Html.Action("ActionMethod","Controller")

コントローラーのアクション:

C#
public class MyController
{
	[ChildActionOnly]
	public ActionResult ActionMethod() 
	{
		var menu = GetMenuFromSomewhere();
		  return PartialView(menu);
	}
}

任意のページをリダイレクトするときに @Url.Action() を使用します。

かみそり
<a href="@Url.Action("Action")">click</a>

一方、結果が HTML 文字列として必要な場合は @Html.Action() を使用する必要があります。 ビューページでパーシャルをバインドできます。

[ad_2]

コメント

タイトルとURLをコピーしました