call c# logic from external javascript file
本问题已经有最佳答案,请猛点这里访问。
我是javascript的新手,我有一个问题,我有一个外部的js文件,我需要运行一些c#服务器端代码。 我的外部js文件是这样的:
1 2 3 4 5 6 7 8 9 10 | my.login = function(parameter, callback) { if(someCondition) { alert("you cant progress") } else { //not importent logic } } |
我考虑了两种使用ajax调用准备其中一个条件的方法:
1 2 3 4 | $.get("locallhost:2756/myCont/MyAct?Id=" + Id +"", function(response) { if (!response.result) { alert("you cant progress"); } |
但我得到错误$未定义
另一种选择是使用XmlHttpRequest,如下所示:
1 2 3 4 5 6 | 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中得不到任何东西",
我的控制器和动作也是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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做点什么
你缺少jquery参考文件从下面的链接下载并在你的html文件中引用它。 在src中,您需要编写jquery.min.js文件的路径。 如果它与你的html文件在同一文件夹中使用下面的代码
1 | <script src="jquery.min.js"> |
链接:http://jquery.com/download/
您可以在没有
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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上找到更多示例。