我需要创建一个HtmlHelper
扩展名来呈现自动填充功能。像这样:
@Html.AutoCompleteFor(x => x.CustomerId);
问题是Html.RenderPartial(...)
返回void,因此我的AutoCompleteFor
方法也必须无效。但是Razor不会让它编译,因为只有当X返回一个Object时,@ Html.X才会编译。
我知道我可以通过调用它来绕过这个问题,而不是:
@{ Html.AutoCompleteFor(x => x.CustomerId); }
但这会使我的代码看起来与@Html.EditorFor
我需要从我的HtmlHelper
中返回一个PartialView一些注意事项:
Html.EditorFor
将尝试查找视图并将其返回。foreign-key
属性默认使用jQuery-AutoComplete
。我无法告诉MVC将我的模板用于外键属性。答案 0 :(得分:1)
您应该调用Html.Partial
,它会返回HelperResult
个对象,而不是直接写入页面。
然后,您可以将HelperResult
返回给来电者。
从技术上讲,你也可以return null
,但那是一个非常愚蠢的想法。