2012-01-22 15 views
2

特定のページでタブストリップを使用するASP.NET MVC3プロジェクトがあります。タブストップはJavaScriptで構築されています。ユーザーが操作を実行すると、正しいタブを開いた状態で正しいページにリダイレクトできるようにしたいと考えています。これを達成するには、URLに変数を渡し、JavaScriptを使用してハンドルを取得するか、ViewBagまたはTempDataを使用して変数を戻し、JavaScriptを使用してハンドルを取得する必要があります。ASP.NET MVC3、Razor - JavaScriptでViewBagまたはURL変数を使用する

JavaScriptを使用してこれらの変数にアクセスするにはどうすればよいですか。

+0

がCSHTMLファイル内または別のjsファイル内のJavaScriptのです? cshtmlファイル内の –

+0

、なぜですか? –

答えて

2

あなたはリダイレクト時にクエリ文字列パラメータとして値を渡し、ターゲットアクションで簡単にビューモデル定義することができます。

public class MyViewModel 
{ 
    public string MyValue { get; set; } 
} 

をして、ターゲット・アクションにリダイレクトされますアンカーまたはコントローラのアクションを持っており、クエリ文字列パラメータとしてmyvalueを渡す:

@Html.ActionLink("go to foo", "foo", new { myvalue = "foo bar" }) 

とリンクがクリックされたときに、ユーザーがバインディングが自動的に発生し、THIを通過するように引数としてビューモデルを取るフー・アクションにリダイレクトされますsの対応するビューのビューモデル:

public ActionResult Foo(MyViewModel model) 
{ 
    return View(model); 
} 

とビューモデルとあなたがやりたいことができ、対応するビューで:

@model MyViewModel 
<script type="text/javascript"> 
    var myValue = @Html.Raw(Json.Encode(Model.MyValue)); 
    // TODO: do something with the value 
</script> 
+0

ありがとう、私が探していただけ! –

関連する問題