我可以从“应用程序”对象存储和读取数据从javascript访问它吗?

时间:2011-05-31 20:17:23

标签: javascript asp.net-mvc-3

我可以在HttpContext.Current.Application["MyData"]存储一些来自javascript的内容吗?

3 个答案:

答案 0 :(得分:1)

你可以这样做,但你不应该这样做,因为这完全是反MVC的做法,因为视图不应该是拉信息=>视图应仅使用从控制器操作以视图模型的形式传递给它们的信息:

<script type="text/javascript">
    var myData = @Html.Raw(Json.Encode(ViewContext.HttpContext.Application["MyData"]))
</script>

显然,实现这一目标的正确方法是定义视图模型:

public class MyViewModel
{
    public MyDataType MyData { get; set; }
}

然后是控制器动作:

public ActionResult Index()
{
    var model = new MyViewModel
    {
        MyData = HttpContext.Application["MyData"] as MyDataType;
    };
    return View(model);
}

最后一个观点:

@model MyViewModel
<script type="text/javascript">
    var myData = @Html.Raw(Json.Encode(Model.MyData))
</script>

答案 1 :(得分:0)

将其值存储在隐藏字段中,并从javascript中读取隐藏字段值,或者进行Ajax调用以读取它并将其作为json对象返回。

答案 2 :(得分:0)

行动中:

public ActionResult MyData()
{
  ViewBag.MyData = HttpContext.Current.Application["MyData"];
  return View();
}

在视图中:

<script>
  var myData = @ViewBag.MyData;
</script>