从外部javascript文件调用c#logic

时间:2016-09-29 05:28:42

标签: javascript c# ajax xmlhttprequest

我在javascript中非常新,我有一个问题,我有一个外部js文件,我需要运行一些c#服务器端代码。我的外部js文件类似于:

my.login = function(parameter, callback) {
    if(someCondition)
    {
        alert("you cant progress")
    }
    else
    {
        //not importent logic
    }
}

我考虑了两种使用ajax调用来准备其中一个条件的方法:

$.get("locallhost:2756/myCont/MyAct?Id=" + Id + "", function(response) {
    if (!response.result) {
        alert("you cant progress");
    }

但我收到错误$未定义 另一种选择是使用XmlHttpRequest,如下所示:

var xhReq = new XMLHttpRequest();
xhReq.open("POST", "locallhost:2756/myCont/MyAct?Id=" + Id + "", true);
xhReq.send(Id);
var res = xhReq.response;
var stat= XMLHttpRequest.status;
var resText= xhReq.responseText;

但我在resText中得不到它的"", 我的控制器和动作也是这样的:

public class myContController : Controller
{      

    [HttpPost]
    public JsonResult MyAct(string Id)
    {
        if (Logic.ValidateId(Id))
        {
            return Json(new { result = true });
        };
        return Json(new { result = false });
    }
}

我想要的只是在c#中验证某些内容并返回结果,如果它没有问题或者没有javascript,如果有其他方法,请你帮助我吗?

编辑: 我知道我可以在html文件中引用jquery以避免$ not defined但是这是其他人可以使用的外部js,它们不在我的项目中。我需要用外部js做一些事情

2 个答案:

答案 0 :(得分:2)

您缺少jquery参考文件从以下链接下载并在您的html文件中引用它。在src中,您需要编写jquery.min.js文件的路径。如果它与你的html文件在同一个文件夹中使用下面的代码

#Column integer to match the column which was clicked in the table
col=int(treeview.identify_column(event.x).replace('#',''))-1

#Create list of 'id's
listOfEntriesInTreeView=treeview.get_children()

                    for each in listOfEntriesInTreeView:
                        print(treeview.item(each)['values'][col])  #e.g. prints data in clicked cell                          
                        treeview.detach(each) #e.g. detaches entry from treeview

link:http://jquery.com/download/

答案 1 :(得分:1)

您可以在没有jQuery的情况下执行AJAX请求。您所需要的就是修复XMLHttpRequest用法:

function reqListener() {
    console.log(this.responseText);
};

function errListener() {
    console.log(this.responseText);
};

var xhReq = new XMLHttpRequest();
xhReq.addEventListener("load", reqListener);
xhReq.addEventListener("error", errListener); // this works for errors
xhReq.open("POST", "locallhost:2756/myCont/MyAct?Id=" + Id + "", true);
xhReq.send(Id);

此外,您还可以添加其他回调。

您可以在MDN上找到更多示例。