ASP.NETとC# ビューから静的メソッド呼び出し

ASP.NETとC#のビューから静的メソッドを呼び出すサンプルです。
(確認環境:Microsoft Visual Studio Community 2019)

目次

サンプル ビューから静的メソッドを呼び出す
  ビュー(TestView1.cshtml)
  静的メソッドがあるクラス(Class1.cs)
  実行結果
  コントローラ(Test1Controller.cs)

ビューから静的メソッドを呼び出す

ビューのTestView1.cshtmlからClass1.csの静的メソッドを呼び出して文字列を表示します。

https://localhost:44320/Test1/TestView1

 

ビュー(TestView1.cshtml)

@using asp_test2.Views;
@{var name = Class1.getName1();}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
	<p>@name</p>
	@Class1.getName2()
</body>
</html>

1行目は、Class1.csがある場所を指定しています。無いとClass1が無いというエラーになります。

2行目は、静的メソッドで値を取得し変数に代入しています。

8行目は、取得した変数を表示します。

9行目は、取得した値をhtmlとして出力します。

 

静的メソッドがあるクラス(Class1.cs)

using System.Web;

namespace asp_test2.Views
{
	public static class Class1
	{
		public static string getName1()
		{
			return ("ABCDE");
		}
		public static HtmlString getName2()
		{
			var str = 
				new HtmlString("<p style=\"background:orange\">ABCDE</p>");
			return str;
		}
	}
}

7行目は、staticがあるので静的メソッドです。stringで文字列を返します。
11行目は、戻り値がHtmlStringです。
14行目は、「new HtmlString」でhtmlを返しています。pタグ内のダブルコーテーション(")は文字として扱うためエスケープしています。

 

実行結果

上記コードを実行すると画面に文字列が表示されます。

 

コントローラ(Test1Controller.cs)

ビュー(TestView1.cshtml)を表示するコントローラです。

using System.Web.Mvc;

namespace asp_test2.Controllers
{
    public class Test1Controller : Controller
    {
		public ActionResult TestView1()
		{
			return View();
		}
	}
}

関連の記事

ASP.NETとC# ビューの書き方(変数/配列/if/for)

△上に戻る