[英]Asp.net - button doesnt work
I am working wiht OutBrain API and i am trying to get some data from the server. 我正在使用OutBrain API工作,并且正在尝试从服务器获取一些数据。
I made a simple HTML page that just take marketer ID and return his name. 我制作了一个简单的HTML页面,仅包含营销商ID并返回他的名字。
When i click the button- nothing happen. 当我单击按钮时,什么也没发生。 Can someone tell me what my problem is ?
有人可以告诉我我的问题是什么吗?
I am using visual studio 2013 and working with MVC ASP.NET. 我正在使用Visual Studio 2013并使用MVC ASP.NET。
Thanks ! 谢谢 !
Code : 代码:
index.cshtml index.cshtml
@{ ViewBag.Title = "Home Page"; } <br /> <div class="details"> <label>Enter Marketer ID</label> <input type="text" class="form-control" id="marketerID"> <button type="button" class="btn btn-default" id="buttonB">OK</button> <section class="details"> <div class="name"> <label>Name</label> <label id="nameMarketer"></label> </div> </section> </div> <script src="~/Scripts/outBrain.js"></script>
outBrain.js outBrain.js
$("#buttonB").on('click', function () {
function getMarketer ()
{
$.ajax(
{
url: "/home/GetOutBrainMarketers",
data: { id: $("marketerID").val() },
success: function (result) {
var marketer = JSON.parse(result);
document.getElementById("nameMarketer").innerHTML = (marketer.name);
}
}
)
}
});
HomeController.cs HomeController.cs
namespace OutBrain_test.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
public async Task<string> GetOutBrainMarketers(string ID)
{
var baseAddress = new Uri("https://api.outbrain.com/amplify/v0.1/marketers/" + ID);
using (var httpClient = new HttpClient { BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("OB-TOKEN-V1", AuthorizeOutBrain().Result);
using (var response = await httpClient.GetAsync("marketers/"+ ID))
{
string responseData = await response.Content.ReadAsStringAsync();
return responseData;
}
}
}
public async Task<string> AuthorizeOutBrain()
{
var baseAddress = new Uri("https://api.outbrain.com/amplify/v0.1/login");
using (var httpClient = new HttpClient { BaseAddress = baseAddress })
{
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("authorization", "BASIC BASE-64-ENC(my-username:my-pass)");
using (var response = await httpClient.GetAsync("login"))
{
string responseData = await response.Content.ReadAsStringAsync();
return responseData;
}
}
}
}
} }
Your button JavaScript click handler doesn't do anything except for defining a function. 您的按钮JavaScript单击处理程序除定义函数外不执行任何操作。 You need to do this:
您需要这样做:
$("#buttonB").on('click', function () {
$.ajax({ {
url: "/home/GetOutBrainMarketers",
data: { id: $("marketerID").val() },
success: function (result) {
var marketer = JSON.parse(result);
document.getElementById("nameMarketer").innerHTML = (marketer.name);
}
});
});
you have used button html control replace it with following 您已使用按钮html控件将其替换为以下内容
<input type="button" class="btn btn-default" value="OK" id="buttonB" />
make following changes in outBrain.js file 在outBrain.js文件中进行以下更改
function pageLoad()
{
$("#buttonB").on('click', function () {
getMarketer();
});
}
function getMarketer()
{
$.ajax({
url: "/home/GetOutBrainMarketers",
data: "{ id:'" + $("marketerID").val() +"'}",
success: function (result) {
var marketer = JSON.parse(result);
document.getElementById("nameMarketer").innerHTML = (marketer.name);
}
});
}
case sensitive problem . 区分大小写的问题。 home controller api parameter name is "ID" and your ajax calling you give "id" in small case please change it in uppercase and try
家庭控制器api参数名称为“ ID”,并且您的ajax调用时以小写形式给出“ id”,请以大写形式将其更改并尝试
$(function ()
{
$("#buttonB").click(function () {
$.ajax({
url: "/home/GetOutBrainMarketers",
data: { ID: $("marketerID").val() },
success: function (result) {
var marketer = JSON.parse(result);
document.getElementById("nameMarketer").innerHTML = (marketer.name);
}
});
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.