-
グローバルコンテキスト: グローバルスコープ(最上位のスコープ)での
this
は、通常はグローバルオブジェクト(ブラウザ環境ではwindow
オブジェクト、Node.js環境ではglobal
オブジェクト)を指す。 -
関数コンテキスト: 関数内での
this
は、関数が呼び出された方法によって異なる値を持つ。-
通常の関数呼び出し: 通常の関数呼び出しでは、
this
はグローバルオブジェクト(ブラウザ環境ではwindow
オブジェクト、Node.js環境ではglobal
オブジェクト)を指す。ただし、厳格モード ("use strict"
) で関数が実行されている場合、this
はundefined
になる。 -
メソッド呼び出し: オブジェクトのメソッドとして関数が呼び出された場合、
this
はそのメソッドを呼び出したオブジェクト自体を指す。 -
コンストラクタ呼び出し: コンストラクタ関数からオブジェクトを生成する際、
this
は新しく生成されたオブジェクトを指す。 -
call
やapply
メソッドの使用:call
やapply
メソッドを使用して関数を呼び出す場合、明示的に指定したオブジェクトがthis
となる。
-
-
アロー関数: アロー関数内の
this
は、通常の関数とは異なる挙動を示す。アロー関数内のthis
は、関数が定義された時点での外部スコープのthis
をキャプチャし、関数内でその値を保持する。そのため、アロー関数内のthis
は実行コンテキストによらず一定の値を持つ。
【ヘッダーの取得】
例)
string userAgent = Request.Headers["User-Agent"];
【ボディの取得】
using (StreamReader reader = new StreamReader(Request.InputStream))
{
string requestBody = reader.ReadToEnd();
// requestBodyにはボディの内容が格納される
}
cshtml側のフォームのname属性に指定した文字列と、コントローラ側のアクションメソッドの仮引数の文字列を一致させるだけ。
【controller】
[
]public ActionResult MyAction(string value1, string value2)
{ // value1とvalue2を使用して処理を行う //
... return View();
}
【cshtml】
<form action="/Controller/MyAction" method="post">
<input type="text" name="value1" />
<input type="text" name="value2" />
<button type="submit">Submit</button> </form>