ASP.NET MVC3,Razor-在Javascript中使用ViewBag或URL变量

本文关键字:ViewBag 变量 URL Javascript MVC3 NET Razor- ASP | 更新日期: 2023-09-27 18:21:09

我有一个ASP.NET MVC3项目,它在某些页面上使用选项卡条。制表位是用JavaScript构建的。当用户执行操作时,我希望能够在打开正确选项卡的情况下将他们重定向到正确的页面。为了实现这一点,我需要在URL中传递一个变量,并使用JavaScript获取它的句柄,或者使用ViewBag或TempData将一个变量传递回,然后再次使用JavaScript获取其句柄。

所以我的问题是,如何使用JavaScript访问这些变量?

ASP.NET MVC3,Razor-在Javascript中使用ViewBag或URL变量

重定向时可以将该值作为查询字符串参数传递,在目标操作中只需定义一个视图模型:

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

然后具有将重定向到目标动作的锚点或控制器动作,并将CCD_ 1作为查询字符串参数传递:

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

当点击链接时,用户会被重定向到Foo操作,该操作以视图模型为参数,从而自动进行绑定,并将该视图模型传递到相应的视图:

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>