如何从ASP.NET MVC操作方法返回JSON对象

时间:2012-11-09 16:23:40

标签: c# javascript .net asp.net-mvc

当我在控制器中时,我需要将实体对象(Product)传递回视图以便在JavaScript中使用。

我将一个模型对象从action方法传递给视图。模型对象包含视图需要显示的一些数据,但也包含(我正在努力解决的问题)产品数据的JSON版本。

在视图中,我想将产品对象作为JavaScript来使用。

控制器:

public ActionResult ViewProduct( int  productKey )
{
    VendorPage page = PageManager.Instance().GetProductPage( );
    Product product = this.repoProducts.Get<Product>( App.GetVendorKey(), productKey );

    JavaScriptSerializer    sz = new JavaScriptSerializer();
    string json = sz.Serialize( new { pr = product } );

    ProductPageModel  ppm = new ProductPageModel( page, product );
    // Embed the product as json in the model
    ppm.js = json;

    if ( product != null )
    {
        return View( "Product", ppm );
    }
    return null;
}

查看 - 将模型用作ProductPageModel @model SiteEngine.SiteEngineUI.Models.ProductPageModel HTML ......

所以,问题是:我如何在JavaScript中访问该产品,以便做类似......

alert( product.Name );

1 个答案:

答案 0 :(得分:1)

在View上试试这个:

<script type="text/javascript">
  var product = jQuery.parseJSON(@Model.js);
</script>

如果您不使用jQuery,请查看http://www.json.org/js.html