2012-08-10 116 views
1

我有我的JS功能:传递剃刀对象的JavaScript函数

function LoadJs(hostApp) { 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("LoadJs", "Home")', 
     data: { "hostApp": hostApp }, 
     success: function (Js) { 
      Response.Write(Js) 
     } 
    }); 
} 

当我调用该函数在我Summary.vbhtml文件,我想通过它我hostApp对象,然后有JavaScript的通反对控制器动作。

这是我script标签调用LoadJs功能:

<script type="text/javascript">  
    LoadJs(@(model)); 
</script> 

我试过'@model''@(model)'@model但似乎没有正确地传递。当我通过它的前两种方式,它传递一个字符串,这不是我想要的,如果我尝试最后一种方式或示例中的方式,那么它将@model转换为正确的对象,但它表示它是未定义的。

回答

2

您可以使用

<script type="text/javascript">  
    LoadJs(@(Html.Raw(new JavaScriptSerializer().Serialize(model)))); 
</script> 
+0

我的程序现在给这个object'定义500错误'无参数的构造函数。我已经使我的对象类可串行化,并且我有一个无参数的构造函数。你知道为什么会这样吗? – gblock 2012-08-10 15:24:38

+0

而在例外的调用堆栈中,是否标记了我发布的这一行或另一个? – twoflower 2012-08-10 15:42:44

+0

它是在@ Url.Action上调用我的js函数 – gblock 2012-08-10 15:43:47