在javascript mvc3中嵌入代码隐藏结果

时间:2012-06-14 14:53:49

标签: javascript asp.net-mvc-3

我有一个mvc3视图(map.cshtml),里面有一个javascript部分。

我有一个控制器(MapController.cs),它有一个返回字符串的函数。

我需要在cshtml页面的javascript区域内调用该函数,

并在处理和显示之前将结果直接渲染到javascript块中。

整个任务是为谷歌地图创建一个系列或信息窗口,并且由于数据分布在系统周围,代码隐藏功能收集这些数据,并将其放入html代码,我需要这个HTML代码在显示之前注入javascript块。

嗯...

感谢

这是我目前使用的实际代码块...

@functions {   私有字符串getContent()   {     返回“测试”;   } }

  var map;

function initialize(){     var myLatlng1 = new google.maps.LatLng(29.64032,-82.363129);     var myLatlng2 = new google.maps.LatLng(29.64032,-81.363129);

var myOptions = {
  zoom: 10,
  center: myLatlng1,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);

var test = 'X@{getContent();}';

所以 - 在var测试中......我希望它能阅读.... Xtesting

2 个答案:

答案 0 :(得分:1)

您可以在javascript代码中使用jQuery ajax从Controller操作中获取数据。

在视图(或布局视图)中包含jQuery库,并在视图中包含以下脚本(map.cshtml)。

<script type="text/javascript">

 $(function(){

    $.get("@Url.Action("GetName","Map")",function(data){
      alert("The value from server is : "+ data);
    });

 });

</script>

您现在需要在GetName中使用名为MapController的Action方法来处理此ajax请求。

public ActionResult GetName()
{
   return Content("mvc is awesome");
}

答案 1 :(得分:0)

这是你想要的吗?

var test = 'X@(getContent())';