如何在aspnet mvc中将部分视图渲染为javascript字符串

时间:2012-07-10 05:07:21

标签: asp.net-mvc-3

我有以下部分“InfoWindowContent”视图。

    @model CasWeb.Models.ViewModels.AssetLocation
<div>
    <h2>@Model.Name</h2>
    <table>
        <tr>
            <td>
                Lat:
            </td>
            <td>@Model.Lat
            </td>
        </tr>
        <tr>
            <td>
                Lng:
            </td>
            <td>@Model.Lng
            </td>
        </tr>
    </table>
</div>

我想将此作为谷歌地图信息窗口的内容。所以我一直在想这样的事情

//Get the content for info window for this asset from a a partial view
            var infoWindowContent@(asset.Name) = "@Html.Action("InfoWindowContent", @asset)";

            var infoWindow@(asset.Name) = new google.maps.InfoWindow({
                content: infoWindowContent@(asset.Name),
                maxWidth: 200
            });

我遇到的问题是java脚本抱怨有一个未终止的字符串文字,因为@html.Action方法返回包含所有换行符的局部视图,我最终得到了如下的java脚本代码: p>

var infoWindowContentd4444444 = "<div>
<h2>d4444444</h2>
<table>
    <tr>
        <td>
            Lat:
        </td>
        <td>43
        </td>
    </tr>
    <tr>
        <td>
            Lng:
        </td>
        <td>43
        </td>
    </tr>
</table>

“;

我可以解决这个问题,从我的部分视图中删除所有换行符,如:

    @model CasWeb.Models.ViewModels.AssetLocation
<div><h2>@Model.Name</h2><table><tr><td>Lat:</td><td>@Model.Lat</td></tr><tr><td>Lng:</td><td>@Model.Lng</td></tr></table></div>

但这很痛苦,难以维持。

如何将部分视图呈现为java脚本字符串?

1 个答案:

答案 0 :(得分:0)

最好再创建一个动作并从动作中返回PartialViewResult。制作Json请求此操作并在DIV中附加HTML响应。请详细了解here