我在@ Html.TextBoxFor和@ Html.ValidationMessageFor上使用msg获取错误指示符行:
“System.Web.WebPages.Html.HtmlHelper不包含的定义 'TextBoxFor'和'ValidationMessageFor'并没有扩展方法 'TextBoxFor'和'ValidationMessagefor'接受第一个参数 类型'System.Web.WebPages.Html.HtmlHelper'可以找到......“
我已经直接在代码中添加了使用语句,确认Web.config中的引用是正确的,我甚至尝试过创建扩展方法。似乎没有任何帮助。请指教。我是Razor的新手,所以一切都是学习经历。
@model Contact.Settings.Models.ContactSettingsPart
@using System.Web.Mvc.Html
<fieldset>
<legend>@T("Contact Detail")</legend>
<div class="editor-label">
@Html.LabelFor(model => model.ContactFunctionalArea,@T("Contact Name"))
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.ContactFunctionalArea)
@Html.ValidationMessageFor(model => model.ContactFunctionalArea)
</div>
</fieldset>
答案 0 :(得分:1)
这不重要。它应该仍然可以正常工作。 Orchard主题通常不了解正在使用的库(它们不是“真正的”项目,而且VS intellisense不知道如何选择它)。确保在运行时没有问题的最简单方法是在构建之前在Orchard.Web项目中包含对models / html帮助程序项目的引用。这将确保dll位于bin文件夹中以进行部署。
我相信应该有一种方法告诉剃刀通过web.config(主题项目或模块项目中的那些)“看到”dll,但我从来没有花时间让这个工作。如果你使用Dynamic作为你的视图模型,因为Orchard似乎鼓励(我讨厌这个),那么你无论如何都不会得到很多intellisense
答案 1 :(得分:0)
我会检查你的views文件夹中是否有web.config文件,如果没有从Orchard的不同视图文件夹中复制一个文件。