2016-04-12 7 views
0

私の部分ページへの直接アクセスを停止するのに少し問題があります。たとえば、Home/Create私はアクセスしたくない、またはHome/Indexに返すでしょう。モーダルでない限り直接URLから部分的にリルートする

コントローラで[ChildActionOnly]属性を使用しているように見えません。これは、jQueryと組み合わせて使用​​するモーダルポップアップで部分的な表示を停止するためです。

これを行う方法はありますか?

答えて

1

あなたは要求がAJAX要求であるかどうかをチェックし、それに基づいて/リダイレクトを返すことができます。あなたのコントローラの内部にRequest.IsAjaxRequest()メソッドを使用してください。

public ActionResult Create() 
{ 
    if(Request.IsAjaxRequest()) 
    { 
    // return partial view 
     return PartialView("Create"); 
    } 
    return RedirectToAction("Index"); 
} 

内部的には、この方法は、要求ヘッダーをチェックし、「X-Requested-With」ヘッダーを検索します。あなたの呼び出しがAJAX呼び出しの場合、値は「XMLHttpRequest

サイドノートされます。Angualar HTTPサービスは、このヘッダby defaultを送信しません。明示的に有効にする必要があります。

var app= angular.module('yourApp', []); 

app.config(['$httpProvider', function ($httpProvider) { 
    $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest'; 
}]); 
+1

ヒーロー!ありがとう、私ができるとき受け入れます。 – PurpleSmurph

関連する問題