2

我有以下部分“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脚本代码,如:

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 脚本字符串吗?

4

1 回答 1

0

最好再创建一个动作并从动作中返回 PartialViewResult。对此操作发出 Json 请求,并在 DIV 中附加 HTML 响应。请在此处找到更多详细信息。

于 2012-07-10T05:57:49.297 回答