Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将视图呈现为JavaScript_Javascript_Asp.net Mvc - Fatal编程技术网

将视图呈现为JavaScript

将视图呈现为JavaScript,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我目前有一个页面,其中我呈现了列表。可以从/mylist?username=xxxxx访问该视图 现在,我希望每个成员将此视图嵌入到自己的站点中 理想情况下,我希望成员只需复制并粘贴一段javascript代码,代码源指向我: <script src="http://mysite.com/mylist?username=xxxxx"></script> 但为了使其正常工作,/mylist?username=xxxxx返回/生成的值必须是有效的JavaScript 如

我目前有一个页面,其中我呈现了
列表。可以从/mylist?username=xxxxx访问该视图

现在,我希望每个成员将此视图嵌入到自己的站点中

理想情况下,我希望成员只需复制并粘贴一段javascript代码,代码源指向我:

<script src="http://mysite.com/mylist?username=xxxxx"></script>

但为了使其正常工作,/mylist?username=xxxxx返回/生成的值必须是有效的JavaScript

如何将视图呈现为JavaScript?

您可以从控制器操作返回一个:

public ActionResult Mylist()
{
    return JavaScript("alert('Hello World');");
}
或返回包含javascript的视图:

public ActionResult Mylist()
{
    MyViewModel model = ...
    model.Message = "foo bar";
    Response.ContentType = "text/javascript";
    return View(model);
}
@model MyViewModel
alert(@Html.Raw(Json.Encode(Model.Message)));
然后您可以有一个包含javascript的对应视图:

public ActionResult Mylist()
{
    MyViewModel model = ...
    model.Message = "foo bar";
    Response.ContentType = "text/javascript";
    return View(model);
}
@model MyViewModel
alert(@Html.Raw(Json.Encode(Model.Message)));

您可以编写一个javascript,将元素添加到DOM中。我正在呈现的“html”有点复杂,因此我不能只在action方法中创建一个字符串,也不想转义每个特殊字符。我希望我可以保持视图的原样,使用一些东西将视图呈现为字符串,然后使用类似JavaScriptSerializer的东西将该字符串转换为javascript字符串,然后我可以使用document.write()将呈现的元素插入到嵌入页面的DOM中。然后可以使用我介绍的第二种方法。您可以使用
@Html.Raw(JSON.Encode(model))
函数对整个模型进行JSON序列化,并将其传递给某个javascript方法。我最好直接使用iframe,还是让此javascript将iframe插入DOM?不,您最好使用iframe。