1

我在我的项目中使用 Devexpress UploadControl for MVC。我正在使用弹出窗口来上传放置文件上传控件的文件。如果我多次单击按钮触发该弹出窗口,则上传控制文本显示为“未定义”。此问题仅在 Google Chrome 中发生

见截图 上传异常

UploadControl 的代码使用如下:

<dl class="uploadProviderDoc">
            @Html.DevExpress().UploadControl(settings =>
               {
                   settings.Name = "Document";
                   settings.ClientSideEvents.TextChanged = "function(s,e){$('label[for=lblUploadMsg]').html(' ');}";
               }).GetHtml()
            @Html.Label("lblUploadMsg", " ")
        </dl>

我检查了 Google Chrome 的控制台,发现了引发该错误的代码行。

RedefineInputAttributes: function(textBoxCell, index, isNewElement) {
  textBoxCell.id = this.GetTextBoxCellID(index);
  if(this.IsSlUploadHelperEnabled()) {
   if(this.GetSlUploadHostElement())
    this.slUploadHelper.RedefineSlObjectAttributesInHostElement(index + 1, index, isNewElement);
   else
    this.slUploadHelper.RedefineSlObjectAttributes(textBoxCell, index, isNewElement);
  }
  else {
   var inputElement = _aspxGetChildByTagName(textBoxCell, "INPUT", 0);
   inputElement.id = textBoxCell.id + ASPxClientUploadControlIDSuffix.FileInput;
//Uncaught TypeError: Cannot set property 'id' of null (This exception is thrown here)
   inputElement.name = inputElement.id;
  }
  var fakeInputElement = _aspxGetChildByTagName(textBoxCell, "INPUT", this.IsSlUploadHelperEnabled() ? 0 : 1);
  if(fakeInputElement)
   fakeInputElement.id = textBoxCell.id + ASPxClientUploadControlIDSuffix.FileFakeInput;
 }
4

2 回答 2

0

此问题可能是由于Chrome V25\V26在当前 Chrome 版本中重复请求 favicon,不发送会话 cookie问题造成的。

这是证明链接。尝试从该线程实施解决方案。

<location path="favicon.ico">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
</location>

它有帮助吗?

于 2013-04-11T21:29:52.093 回答
0

你在使用 jQuery 吗?看起来DevExpress 支持中心有一个未解决的问题

如果是这种情况,请将演示问题的示例项目提交给 DevExpress,他们会为您解决问题。

于 2013-04-10T13:43:37.620 回答