900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > mvc html的扩展 关于asp.net mvc 3:Razor无法正确呈现HtmlHelper扩展方法

mvc html的扩展 关于asp.net mvc 3:Razor无法正确呈现HtmlHelper扩展方法

时间:2022-08-31 09:13:08

相关推荐

mvc  html的扩展 关于asp.net mvc 3:Razor无法正确呈现HtmlHelper扩展方法

我的html helper类中有一个Extension方法来呈现自动完成功能。 这在VS和VS中的aspx视图引擎中可以很好地工作。 Autocomplete类具有一个重载的ToString()方法,该方法输出Raw Html。

但是,当我使用Razor引擎时,没有任何可见的输出。 Firebug显示扩展方法的输出为Html编码,如下所示:(所有&lt,&gt ..)

这就是我所说的方法:

@Html.AutocompleteFor(m => m.p_empid, m => m.p_ename)

.setUrl(VirtualPathUtility.ToAbsolute("~/UserMst/GetEmployee"))

.setClass("AutoComplete").setStyle("width: 190px")

我如何解决此问题以使其与MVC3中的Razor一起使用?

谢谢

呼叫ToMvcHtmlString()(IIRC)

@leppie-ToMvcHtmlString()在框架内部-您需要调用MvcHtmlString.Create()或编写自己的扩展方法

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

public static MvcHtmlString HiText(this HtmlHelper obj) {

string code ="

hi

";

return MvcHtmlString.Create(code);

}

好 ! 这就是我现在如何使其工作的方式。 不知道这是否是一个好的解决方案。 在此处将修复程序发布给其他面临相同问题的人。

我将ToString()覆盖方法重命名为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()

剃刀现在正确渲染它。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。