読者です 読者をやめる 読者になる 読者になる

haru and...

猫のようにだらけ、犬のように遊ぶ。

【MVC】【C#】AjaxOnly属性を使う

テクノロジー

MVCではAjax通信かどうかを判定するのに

public JsonResult GetData()
{
 // リクエストがAjax通信の場合のみ処理
 if (Request.IsAjaxRequest()) { 

  // Ajax通信の場合の処理
  List<string> dataList = new List<string>();
  dataList.Add("あ");
  dataList.Add("い");
  dataList.Add("う");

  return Json(dataList); 
 } 
 else {
  // リクエストがAjax通信以外の場合、何もしない
  return new EmptyResult();
 }
}

と、上記のような書き方をしていたのですが、

NuGetから「Mvc4Futures」をインストールして
usingディレクティブに「Microsoft.Web.Mvc」の参照を追加します。
MVC3の場合は「Mvc3Futures」になります。
MVC5は未確認です。。

そうするとですね。

[AjaxOnly]
public JsonResult GetData()
{
 List<string> dataList = new List<string>();
 dataList.Add("あ");
 dataList.Add("い");
 dataList.Add("う");

 return Json(dataList); 
}

これで済んでしまいます。
って多分常識なんですよね。。(T_T)

頭に属性がつくことで可読性も上がります。