Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript文件中将AJAX发布到MVC操作?_Javascript_Ajax_Asp.net Mvc - Fatal编程技术网

如何从javascript文件中将AJAX发布到MVC操作?

如何从javascript文件中将AJAX发布到MVC操作?,javascript,ajax,asp.net-mvc,Javascript,Ajax,Asp.net Mvc,以下代码存在于名为job.js的文件中。当我在本地主机上运行此代码时,一切都正常运行。当我对我的内联网服务器这样做时,其中有一个应用程序名,我得到一个404 Job.updateJob = function () { $.post('/Builder/ListJobItems', function (data) { ... }); } 我很想使用@Url.Action,但正如我所说,这是一个javascript.js文件。我也知道在body元素上添加数据值的黑

以下代码存在于名为job.js的文件中。当我在本地主机上运行此代码时,一切都正常运行。当我对我的内联网服务器这样做时,其中有一个应用程序名,我得到一个404

Job.updateJob = function () {

    $.post('/Builder/ListJobItems', function (data) {
        ...
    });
}
我很想使用@Url.Action,但正如我所说,这是一个javascript.js文件。我也知道在body元素上添加数据值的黑客行为,但出于架构原因,我希望此代码与DOM解耦。它是一个数据采集引擎,为什么它甚至应该知道DOM是什么

我可以使用某种方式解析window.location的解决方案,但我遇到的问题是,我需要一个在任何地方都能工作的解决方案


最让我沮丧的是,我看不出这不是每个人都会面临的问题。为什么没有解决办法?每个人都只是把他们所有的JavaScript放到razor视图中吗?没有人再将代码隔离到模块中了吗?我不相信这两个都是真的,但似乎没有任何解决办法。我不知所措。

当我需要从js文件的服务器端获取数据时,我做了什么

我创建动作,并使用JS内容进行查看。而是包括job.js,我调用我的操作

<script type="text/javascript" src="@Url.Action("Job","JSController")"/>

这就行了。

像Job.updateJob=function url这样的工具怎么样{?也许你从哪里打电话叫razor,或者打电话的地方叫razor;回溯到足够远的地方,事情必须是对的?我做这类事情,没有问题。你的内联网服务器配置错误?路由问题?@zgood,我在我的问题中说了为什么。在本地主机上,我没有应用程序名。在intera上net服务器。当对该服务器调用url“/Builder/ListJobItems”时,它应该是“/MyApplication/Builder/ListJobItems”。在这两种情况下我都需要此代码。@Jordan oh一定错过了这一部分。这是一种非常有趣的方法。我不知道您可以使用JavaScript控制器。这样的操作会是什么样子?我我必须做一些研究,但我认为这正是我需要的。没有JavaScript控制器,它的ordinarycontroller在action视图中不包含HTML,只包含JavaScript,与服务器上的.js文件相同。有没有办法让razor视图使用js语法而不是HTML?
Job.updateJob = function () {

    $.post('@Url.Action("ListJobItems","Builder")', function (data) {
        ...
    });
}