【发布时间】:2018-02-08 03:32:02
【问题描述】:
我很难弄清楚如何使用 jQuery 从 C# 调用变量。我似乎无法访问变量 sqlReq。我的最终目标是能够将我自己的 SQL 信息添加到这个 PieChart 中。但我真的不知道如何在 HTML 或 jQuery 中调用和设置 C# SQL 请求...
我看过很多例子,但我似乎无法得到一个具体的答案。我不确定这是否与没有对 C# 类的引用有关,或者是什么。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Diagnostics;
namespace KendoUIApp3.Controllers
{
public class HomeController : Controller
{
public String sqlReq = "";
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
SqlConnection sqlConn = new SqlConnection("someDB");
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlConn;
SqlDataReader read;
cmd.CommandText = "SELECT COUNT(*) FROM P";
cmd.CommandType = CommandType.Text;
sqlConn.Open();
read = cmd.ExecuteReader();
sqlReq = read.ToString();
sqlConn.Close();
Console.Write(read);
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your app description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
@{
ViewBag.Title = "Home Page";
}
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="styles/kendo.common.min.css" />
<link rel="stylesheet" href="styles/kendo.default.min.css" />
<link rel="stylesheet" href="styles/kendo.default.mobile.min.css" />
<script src="js/jquery.min.js"></script>
<script src="js/kendo.all.min.js"></script>
<script src="C:\Users\215000712\source\repos\KendoUIApp3\KendoUIApp3\Scripts\kendo\sqlQuery.js"></script>
</head>
<body>
<div id="example">
<div class="demo-section k-content wide">
<div id="chart" style="background: center no-repeat url('../content/shared/styles/world-map.png');"></div>
</div>
<script>
function createChart() {
$("#chart").kendoChart({
title: {
position: "bottom",
text: "Share of Internet Population Growth, 2007 - 2012"
},
legend: {
visible: false
},
chartArea: {
background: ""
},
seriesDefaults: {
labels: {
visible: true,
background: "transparent",
template: "#= category #: \n #= value#%"
}
},
series: [{
type: "pie",
startAngle: 150,
data: [{
category: "Asia",
value: 53.8,
color: "#9de219"
}, {
category: "Europe",
value: 16.1,
color: "#90cc38"
}, {
category: "Latin America",
value: 11.3,
color: "#068c35"
}, {
category: "Africa",
value: 9.6,
color: "#006634"
}, {
category: "Middle East",
value: 5.2,
color: "#004d38"
}, {
category: "North America",
value: 3.6,
color: "#033939"
}]
}],
tooltip: {
visible: true,
format: "{0}%"
}
});
}
$(document).ready(createChart);
$(document).bind("kendo:skinChange", createChart);
</script>
<div>
<br/>
<br/>
<br />
<script type="text/javascript">
$(document).ready(function ()
{
alert("@sqlReq")
})
</script>
</div>
</body>
</html>
【问题讨论】:
-
一个简单的解决方案是将您的 sqlReq 值放在 viewbag 中并从那里访问它(就像您使用标题一样)。但这取决于您想对数据做什么。是一次性加载吗?
-
你不会从 JavaScript 调用 C#,也不会从 C# 调用 JavaScript。您是否研究过 ASP.NET MVC 应用程序应该如何组合在一起?它是一个 Web 框架,因此最终您只能通过 HTTP 协议向浏览器发送 HTML、JavaScript 和 CSS。您不会直接从 JavaScript 调用 C#。在 MVC 中,您通常在从控制器调用的数据层中查询数据。控制器将结果信息作为模型传递到视图中,然后视图决定将什么 HTML 发送给客户端。
-
@mason true 但是您可以在 javascript 中访问 C# 变量:stackoverflow.com/questions/665995/…
-
您没有正确处理您的IDisposable 对象(SqlConnection、SqlCommand、SqlDataReader)。
-
@jdmdevdotnet 这将 C# 值的值嵌入到在视图中生成并发送到客户端的 HTML 文档中。您不是“从 JavaScript”访问它。区别很重要,因为许多刚接触 Web 开发的人很难理解客户端与服务器端代码以及它们如何交互。说你可以像那样“访问变量”只是误导。
标签: javascript c# jquery html