无法使用RequireJS和MVC.net呈现模块

时间:2017-10-23 19:37:36

标签: asp.net-mvc-4 requirejs

我试图在MVC.net中使用工厂模式使用requirejs渲染模块,但是我收到了错误

Uncaught Error: Mismatched anonymous define() module: function () {

我的项目文件夹结构如下所示。

require.config.js:

requirejs.config({
"baseUrl": "Scripts",
"paths": {
    "JALModule": "Views/Claim/Startup/JAL",
    "SeniorCareModule": "Views/Claim/Startup/NonReferral/SeniorCare"
}
});

enter image description here

我正在使用.net捆绑和缩小,当在下面的浏览器上呈现应用程序时就是结构。

enter image description here

JALModule.js:

define(function () {
return {
    // declare the function to change the background color
    setBackgroundJAL: function (color) {
        console.log('HI');
    }
};
});

我从工厂类访问上述模块:

define(function (require) {

var claimTypes = {
    'JAL': require('JALModule')
    , 'SeniorCare': require('SeniorCareModule')
    //, 'W2': require('modules/W2')
};
return function (claimType) {
    try {
        return new claimTypes[claimType];
    } catch (error) {
        throw new Error('Unknown Claim Type Specified.');
    }
}
});

我是否遗漏了一些配置,或者是否错误地定义了相对路径。 需要你的宝贵意见。

由于 Sajesh

1 个答案:

答案 0 :(得分:-1)

在尝试了所有可能性后,我能够解决这个问题。 1)我不得不更改配置文件以提供正确的路径:

requirejs.config({
"baseUrl": "../Scripts",
"paths": {
    "JAL": "../../Views/Claim/Startup/JAL",
    "SeniorCare": "../../Views/Claim/Startup/NonReferral/SeniorCare",
    "ClaimStartupFactory": "../../Views/Claim/Startup/ClaimStartupFactory"
}
});

2)此外,我还必须删除requirejs config中定义的所有文件的.net缩小。

3)直接引用Layout.cshtml文件中的requirejs配置链接

<script src="~/Scripts/require.config.js"></script>

希望这会有所帮助。