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

标签 c# javascript asp.net-mvc asp.net-mvc-3 razor

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

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

最佳答案

您可以在重定向时将值作为查询字符串参数传递,并在目标操作中简单地定义一个 View 模型:

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

然后有一个 anchor 或 Controller 操作将重定向到目标操作并传递 myvalue 作为查询字符串参数:

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

当链接被点击时,用户被重定向到 Foo 操作,该操作将 View 模型作为参数,以便绑定(bind)自动发生并将该 View 模型传递给相应的 View :

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

在相应的 View 中,您可以对 View 模型做任何您想做的事情:

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

关于c# - ASP.NET MVC3、Razor - 在 Javascript 中使用 ViewBag 或 URL 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963765/

相关文章:

c# - 使用 foreach 循环和 XmlNodeList C# 将新节点附加到节点列表

c# - 使用 Entity Framework 6 将数据从数据库存储到本地

javascript - 链式 promise 如何在微任务队列中排队

javascript - 在不同元素上淡出 Twitter Bootstrap 弹出窗口

javascript - 在javascript文件中获取正确的root

c# - ASP.NET MVC Ajax 中的 500 内部错误

c# - 为什么 DrawString 在 C# Winforms 中表现出意外行为?

c# - 重写相等运算符

javascript - Socket.io,无法从客户端发出自定义事件

c# - Master-Detail 使用 Razor、ASP.NET MVC 3 和 .NET 4.0 创建 View