0

ASP.NET MVC 3アプリケーションについて話しているとすると、シナリオは次のようになります。

  1. http://localhost:60088/Example?param1=test123ビューを返すURLを参照します
  2. http://localhost:60088/Example/DoSomethign次に、JSON文字列を返すURLへのAjax呼び出しをトリガーするボタンをクリックします

したがって、私のジレンマは、DoSomethingコントローラーアクションparam1で、最初のステップで渡されたパラメーターを取得する必要があるということです。

私の最初のテイクは、次のようなことをすることです。

public ActionResult DoSomething()
{
    ...

    Uri baseUrl = this.Request.UrlReferrer;
    // Somehow extract the parameter from baseUrl

    ...
}

しかし、それが良い考えかどうかはわかりません...

質問:

  1. (最初のコールバックの後にさらにいくつかのcallbakを作成した場合でも)コールバック以外の方法で呼び出されたURLthis.Request.UrlReferrer常に含まれると想定しても安全_DoSomething_ですか?

  2. 私がやろうとしていることを達成するためのより良い方法はありますか?

4

2 に答える 2

3

いいえ; リファラーが常に存在するとは限りません。

代わりに、元のURLをパラメーターとしてAJAXリクエストに含める必要があります。

于 2012-09-19T23:36:51.130 に答える
0

ビューを返すアクションで、次のようparam1にをに追加できます。ViewBag

public ActionResult Example(string param1)
{
    ViewBag.Param1 = param1;
    return View();
}

次に、ajax呼び出しでViewBag.Param1、ルート値としてを渡すだけです。空の場合もありますが、問題はありません。

于 2012-09-20T02:39:13.683 に答える