我如何在JavaScript文件中发布MVC动作?

时间:2015-03-17 20:09:58

标签: javascript ajax asp.net-mvc

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

Job.updateJob = function () {

    $.post('/Builder/ListJobItems', function (data) {
        ...
    });
}

我很想使用@Url.Action(),但我说这是javascript(.js)文件。我也知道你将数据值放在body元素上的hack,但出于体系结构的原因,我希望这个代码与DOM分离。它是一个数据采集引擎,为什么它甚至应该知道DOM是什么。

我会以一种以某种方式解析window.location的解决方案,但我遇到的问题是我需要一个适用于所有地方的解决方案。

最令我沮丧的是,我无法看到这不是每个人都会遇到的问题。为什么没有解决方案?每个人都把他们所有的JavaScript放入剃刀视图吗?没有人再将代码隔离到模块中吗?我无法相信其中任何一个都是真的,但似乎没有任何即将到来的解决方案。我很茫然。

1 个答案:

答案 0 :(得分:0)

当我在js文件中需要来自服务器端的数据时,我做了什么。

我创建了Action,并使用JS内容进行查看。而是包括job.js我称之为我的行动

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

在视图中我设置了所有内容,例如

Job.updateJob = function () {

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

这将有效。