jQuery 运行 C# 方法
jQuery running C# method
谁能指出我正确的方向?
我正在尝试通过Javascript/jQuery从C#方法获取输出。
返回的输出[object Object]
何时应返回首都。
jQuery(使用 jqvmaps 工具):
$(document).ready(function () {
var Capital = null;
jQuery('#vmap').vectorMap(
{
map: 'world_en',
backgroundColor: '#a5bfdd',
borderColor: 'white',
borderOpacity: 0.25,
borderWidth: 1,
color: 'gray',
enableZoom: true,
hoverColor: 'orange',
hoverOpacity: null,
normalizeFunction: 'linear',
scaleColors: ['#b6d6ff', '#005ace'],
selectedColor: 'red',
selectedRegion: null,
showTooltip: true,
onRegionClick: function (element, code, region) {
var codeValue = $('#Code').text();
var countryCode = $('#Code').text();
var data = null;
data = { CountryCode: codeValue.toUpperCase() }
console.log(data);
$.ajax({
type: "POST",
url: 'Default.aspx/GetCapital',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (code) {
Capital = code.d;
CapitalCity.text(Capital);
}
});
var ISOCode = $('#Code');
ISOCode.text(code);
var Country = $('#Country');
Country.text(region);
var CapitalCity = $('#Capital');
}
});
});
C#:
using System;
using System.Collections.Generic;
using System.Web.UI;
using Newtonsoft.Json;
using System.IO;
using System.Web.Services;
using System.Web.Script.Services;
namespace WorldMapDetails
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string GetCapital(string CountryCode)
{
//do your stuff
Country Country = new Country();
List<Country> selectedCountry = JsonConvert.DeserializeObject<List<Country>>(File.ReadAllText(@"C:'Users'Brian'Documents'Bloxinations'Bloxinations'WorldMapInfo'WorldMapDetails'Scripts'json'Countries.json"));
String Capital = null;
foreach (Country c in selectedCountry)
{
if (c.cca2 == CountryCode)
{
Capital = c.capital.ToString().ToUpper();
}
}
return Capital;
}
}
}
如果我运行这个jQuery,它工作得很好,但首都文本的更改是"延迟"的(我必须双击一个地区)。
$(document).ready(function () {
var Capital = $('#Capital');
jQuery('#vmap').vectorMap(
{
map: 'world_en',
backgroundColor: '#a5bfdd',
borderColor: 'white',
borderOpacity: 0.25,
borderWidth: 1,
color: 'gray',
enableZoom: true,
hoverColor: 'orange',
hoverOpacity: null,
normalizeFunction: 'linear',
scaleColors: ['#b6d6ff', '#005ace'],
selectedColor: 'red',
selectedRegion: null,
showTooltip: true,
onRegionClick: function (element, code, region)
{
var codeValue = $('#Code').text();
var countryCode = $('#Code').text();
var data = { CountryCode:codeValue.toUpperCase() }
var ISOCode = $('#Code');
ISOCode.text(code);
var Country = $('#Country');
Country.text(region);
$.ajax({
type: "POST",
url: 'Default.aspx/GetCapital',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (code) {
Capital.text(code.d);
//console.log(data);
console.log(code);
}
});
}
});
});
如何修复它以使其立即更新(无需双击)?
修复将
ajax 结果分配给Capital
变量,如下所示。
$(document).ready(function () {
var Capital = null;
jQuery('#vmap').vectorMap(
{
map: 'world_en',
backgroundColor: '#a5bfdd',
borderColor: 'white',
borderOpacity: 0.25,
borderWidth: 1,
color: 'gray',
enableZoom: true,
hoverColor: 'orange',
hoverOpacity: null,
normalizeFunction: 'linear',
scaleColors: ['#b6d6ff', '#005ace'],
selectedColor: 'red',
selectedRegion: null,
showTooltip: true,
onRegionClick: function (element, code, region) {
var codeValue = $('#Code').text();
var countryCode = $('#Code').text();
var data = null;
data = { CountryCode: codeValue.toUpperCase() }
console.log(data);
var Capital = null;
$.ajax({
type: "POST",
url: 'Default.aspx/GetCapital',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (code) {
Capital = code;
$('#Capital').text(Capital);
}
});
var ISOCode = $('#Code');
ISOCode.text(code);
var Country = $('#Country');
Country.text(region);
}
});
});
相关文章:
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- Meteor应用程序无法运行-对象#<编译器>没有方法'主机'
- 使用c#在Web服务器上运行JavaScript方法
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- 未能运行构造函数:TypeError:对象#<对象>没有方法'addPlugin'
- 有没有一种方法可以在服务器端页面加载之前在加载时运行javascript
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- javascript在html元素方法运行setTimeout后返回此消息
- 为什么可以't我从hamsters.js内部运行我的方法
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- 在客户端 Javascript 方法之后运行服务器方法
- 为什么 then() 链式方法不按顺序运行
- setInterval 只在对象方法上运行一次
- 运行时错误:对象不支持属性或方法
- JQuery .ajax() 函数调用不起作用,但成功方法运行
- 随着时间的推移,JavaScript 的 setInterval() 方法运行是否会消耗明显的处理能力
- javascript方法运行时显示loading.gif
- 将方法c#运行到javascript中