【问题标题】:Issue in reading resource file in Js file when using BundleTable.EnableOptimizations in MVC在 MVC 中使用 BundleTable.EnableOptimizations 时在 Js 文件中读取资源文件的问题
【发布时间】:2018-10-25 01:38:52
【问题描述】:

我使用 'jQuery Impromptu' 提示用户输入,下面是代码

$.prompt(Resource.DeleteConfirm, {
  buttons: { 
    [Resource.Res_Option_Yes]: true, 
    [Resource.Res_Option_No]: false 
  },
  submit: function (e, v, m, f) {
    if (!v) {
      return;
    } else {
    }
  }
});

我使用一个 .cshtml 文件(用于读取资源文件的资源

<script type="text/javascript">
  var Resource = {
    Res_Option_Yes: '@Resource.res_Option_Yes',
    Res_Option_No: '@Resource.res_Option_No',
    DeleteConfirm: '@Resource.DeleteConfirm'
  };
</script>

运行应用程序时,它会在提示中的按钮中显示“是”和“否”文本,但是当我启用优化(使用BundleTable.EnableOptimizations = true)时,它会显示错误:

缩小失败。返回未缩小的内容。

我该如何解决这个问题?

【问题讨论】:

  • @RoryMcCrossan, [Resource.Res_Option_Yes] 这行导致问题,如果我使用不使用资源文件,那么它会工作
  • 谢谢。我为你添加了答案

标签: jquery asp.net-mvc impromptu


【解决方案1】:

缩小失败是因为它不喜欢(或可能不理解)将内联变量包装在方括号中的重要性,以便将其值用作对象的键。

要解决此问题,请单独构建对象并将其提供给 buttons 属性,如下所示:

var buttons = {};
buttons[Resource.Res_Option_Yes] = true;
buttons[Resource.Res_Option_No] = false;

$.prompt(Resource.DeleteConfirm, {
  buttons: buttons,
  submit: function (e, v, m, f) {
    // note the logic you had in here is redundant...
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2018-11-24
    相关资源
    最近更新 更多