2016-09-03 130 views
0

我有一个应用程序使用在开发环境中工作的数据列表,但在生产环境中没有查找返回一个空白字段。我想广泛使用datalist,因为它很容易提供一个自动完整的工具,但不能直到它在Production中工作。MVC Datalist不适用于prod服务器,但适用于Dev

Dev是MVC VS 2010在IE7下的Win7版本,它在HTML5Test中得分302。 生成的是Server 2012 R2标准版上的IE 11.0,报告为Win8.1,在HTML5Test中评分312。

经过多次比较,检查,尝试,检查和审查后,我发现问题的根源,停止datalist工作。

MVC查看代码在Index.cshtml 这是最终的实验代码试图隔离问题:

@model IEnumerable<CRM_MVC.Models.BranchDiary> 
@{ 
    Layout = null; 
} 
<body> 
<div> 
    <lable>Enter TV Series Name </label> 
    <input type="text" id="tv" name="series" list="tvseries" autofocus> 
    <datalist id="tvseries"> 
     <option value="Heroes"> 
     <option value="Lost"> 
     <option value="Fringe"> 
     <option value="CriminalMinds"> 
     <option value="CSIMiami"> 
    </datalist> 

    <p><strong>Note:</strong> The datalist tag is not supported in Internet Explorer 9 and earlier versions, or in Safari.</p> 
</div> 
</body> 

互联网显示Index.cshtml Explorer会话Index Screen Print

现场应提供自动完成下拉菜单,但没有。

Index Inspect showing incorrect datalist

的检查屏幕示出了<datalist id=tv>被错误地通过/数据列表终止在同一行上和之后的选项列表/数据列表错误地具有//数据列表之后出现。

当右键单击编辑HTML被选为Div时,原始HTML正确地具有第一个没有/ datalist的datalist标记,并且选项列表在最后被/ datalist标记正确终止。

Inspect showing Edit HTML

可以做些什么来阻止被添加到这样它可能工作在生产一样上开发的演员?

+0

看起来像浏览器,在这种情况下,IE5(技术上,IE在IE5模式下运行),正试图“纠正”的“错误”找到源。在相同的屏幕上,还有一个''和几行下来,'',这是由一个实际的错误!所以,你需要做的是尝试在IE10模式或更高版本中运行它。 –

+0

并通过W3C验证程序运行您的HTML,以修复所提到的''。 –

+0

感谢您的回复。我很欣赏你的时间和想法。我会尝试你所建议的。我花了很多时间在这个问题上工作,在过去的3天里没有成功。直到星期六下午,我发现它本身就是“调整”html的。使用W3C验证器是一个好主意,我将通过它运行实际的代码以及此测试代码片段。再次感谢您的评论。 –

回答

0

解决此问题的方法取消选中在IE Tools-> Compatibility View Settings中的兼容性视图中显示Intranet站点。 感谢李斯特先生对此建议。 IE 11 Compatibility View Settings

我将需要检查全局更改此设置是否影响其他任何内容,但它会使自动完成功能按预期方式工作。再次感谢李斯特先生的帮助。

Sample autocomplete working now

相关问题