Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 Razor未正确呈现HtmlHelper扩展方法_Asp.net Mvc 3_Razor - Fatal编程技术网

Asp.net mvc 3 Razor未正确呈现HtmlHelper扩展方法

Asp.net mvc 3 Razor未正确呈现HtmlHelper扩展方法,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我的html助手类中有一个扩展方法来呈现自动完成。这与VS2008和VS2010中的aspx视图引擎配合得很好。Autocomplete类有一个重载的ToString()方法,该方法输出原始Html 然而,当我使用剃须刀引擎时,我并没有得到任何可见的输出。Firebug显示扩展方法的输出是Html编码的,如下所示:(使用all<,>..) 这就是我调用方法的方式: @Html.AutocompleteFor(m => m.p_empid, m => m.p_ename) .s

我的html助手类中有一个扩展方法来呈现自动完成。这与VS2008和VS2010中的aspx视图引擎配合得很好。Autocomplete类有一个重载的ToString()方法,该方法输出原始Html

然而,当我使用剃须刀引擎时,我并没有得到任何可见的输出。Firebug显示扩展方法的输出是Html编码的,如下所示:(使用all<,>..)

这就是我调用方法的方式:

@Html.AutocompleteFor(m => m.p_empid, m => m.p_ename)
.setUrl(VirtualPathUtility.ToAbsolute("~/UserMst/GetEmployee"))
.setClass("AutoComplete").setStyle("width: 190px")
如何在MVC3中使用Razor解决此问题


谢谢

请确保使用以下命令返回
MvcHtmlString

public static MvcHtmlString HiText(this HtmlHelper obj) {
   string code = "<p>hi</p>";
   return MvcHtmlString.Create(code);
}
公共静态MvcHtmlString HiText(此HtmlHelper obj){
字符串代码=“hi

”; 返回MvcHtmlString.Create(代码); }
好的!这就是我现在如何让它工作的。不知道这是不是一个好的解决方案。为面临相同问题的其他人在此处发布修复程序

我将
ToString()
override方法重命名为
MvcHtmlString ToHtml()
,并返回
MvcHtmlString.Create(result.ToString())
,而不是原始html作为字符串

现在我不得不称之为

@Html.AutocompleteFor(m => m.p_empid, m => m.p_ename)
.setUrl(VirtualPathUtility.ToAbsolute("~/UserMst/GetEmployee"))
.setClass("AutoComplete").setStyle("width: 190px").ToHtml()

Razor现在可以正确地渲染它。

调用
ToMvcHtmlString()
(IIRC)@leppie-
ToMvcHtmlString()
是框架的内部-您需要调用
MvcHtmlString.Create()
或编写自己的扩展方法
@Html.AutocompleteFor(m => m.p_empid, m => m.p_ename)
.setUrl(VirtualPathUtility.ToAbsolute("~/UserMst/GetEmployee"))
.setClass("AutoComplete").setStyle("width: 190px").ToHtml()