2012-01-22 23 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觀模型到相應的視圖:

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

謝謝先生,正是我在找的! –

相關問題