我在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做一些事情
答案 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
答案 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上找到更多示例。