我的 html 帮助程序类中有一个扩展方法来呈现自动完成。这适用于 VS2008 和 VS2010 中的 aspx 视图引擎。Autocomplete 类有一个重载的 ToString() 方法,它输出 Raw Html。
但是,当我使用 Razor 引擎时,我没有得到任何可见的输出。Firebug 显示扩展方法的输出是 Html 编码如下:(所有 <, >..)
<input class="AutoComplete" id="p_ename" name="p_ename" style="width: 190px" type="text" valuefield="p_empid"></input> <input id="p_empid" name="p_empid" type="hidden"></input>
<script type='text/javascript'>$('#p_ename').autocomplete('/UserMst/GetEmployee', { dataType: 'json', scroll: true, parse: function(item, event) { $('#p_empid').val(''); var array = new Array(); if(item) for (var i = 0; item[i]; i++ ) { array[array.length] = { data: item[i], value: item[i], result: unescape(item[i].Text) }; } return array; }, formatItem: function(row) { return unescape(row.Text); } }).result(function(event, item, formatted) { $('#p_empid').val(item.Value); }).keyup(function() { if (window.event.keyCode != 13 && window.event.keyCode != 16 && window.event.keyCode != 20 && window.event.keyCode != 9 && window.event.keyCode != 27 && !(window.event.keyCode >= 112 && window.event.keyCode <= 123) && !(window.event.keyCode >= 37 && window.event.keyCode <= 40)) { $('#p_empid').val(''); } });
</script>
这就是我调用该方法的方式:
@Html.AutocompleteFor(m => m.p_empid, m => m.p_ename)
.setUrl(VirtualPathUtility.ToAbsolute("~/UserMst/GetEmployee"))
.setClass("AutoComplete").setStyle("width: 190px")
如何解决此问题以在 MVC3 中与 Razor 一起使用?
谢谢