[asp.net]从 ASP︰ 网 MVC 控制器来查看传输数据

发布时间: 2016/11/12 5:52:30
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在 contrroller 中有一个物体,和我想要使用他们在视图和 javascript 代码但我不能容 ViewBag。听到我的代码︰

public class MyController : Controller
{     

    public async Task<ActionResult> Index()
    {

        using (var client = new HttpClient())
        {
            string response = await client.GetStringAsync("http://api/controller/....");
            ViewBag.VB = response;
            return View();
        }

    }
}

和我的观点︰

@{
ViewBag.Title = "Index";
 }

@section Javacript
{

<script type="text/javascript">

function MyFunction() {
 ****   //I want to use DATA hear.  *********
};
</script>
}
<div id="info">

</div>

怎么可以这样?任何人都有一个想法?

解决方法 1:

你可以把您的数据到 <script type="text/html"> 节点,并从通过 javascript 访问 document.getElementById

<script type="text/html" id="data">@ViewBag.VB</script>

<script>
function MyFunction() {
    var data = document.getElementById('data').innerHTML;
    // if the data is in the json format, you can use JSON.parse:
    data = JSON.parse(data);
    // TODO: do something with data
}
</script>

你也可以直接到 javascript 插入数据︰

function MyFunction() {
    var data = '@(ViewBag.VB)'; // or omit the single quotes if it's json data
    // TODO: do something with data
}

这种方法要求的 javascript 代码嵌入到 .cshtml 文件。

另一种可能性是直接从 javascript 与 ajax 请求中检索数据。此示例使用 jQuery 的$虽然函数︰

function MyFunction() {
     $.ajax({
         url: "/api/controller/...",
         contentType: "application/json", // tell the api-controller that we want json
         dataType: "application/json",    // tell the jQuery callback that it is json
         success: function (data) {
             // TODO: do something with data
         }
    });
}
赞助商