简体   繁体   English

ASP.NET-按钮不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM