我有一个在某些页面上使用标签条的 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/