0

我在 @Html.TextBoxFor 和 @Html.ValidationMessageFor 处得到错误指示线,并带有 msg:

“System.Web.WebPages.Html.HtmlHelper 不包含‘TextBoxFor’和‘ValidationMessageFor’的定义,没有扩展方法‘TextBoxFor’和‘ValidationMessagefor’接受‘System.Web.WebPages.Html’类型的第一个参数.HtmlHelper' 可以找到..."

我已经直接在代码中添加了 using 语句,确认 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>
4

2 回答 2

1

这是非关键的。它应该仍然可以正常工作。Orchard Themes 通常不理解正在使用的库(它们不是“真正的”项目,VS intellisense 不知道如何选择它)。确保运行时没有问题的最简单方法是在构建之前在 Orchard.Web 项目中包含对您的模型/html 帮助程序项目的引用。这将确保 dll 在用于部署的 bin 文件夹中。

我相信应该有一种方法可以告诉剃须刀通过 web.config(主题项目或模块项目中的那些)“查看”dll,但我从来没有花时间让它工作。如果您使用 Dynamic 作为您的视图模型,正如 Orchard 似乎鼓励的那样(我讨厌这个),那么无论如何您都不会获得太多智能感知

于 2013-08-10T08:02:27.183 回答
0

我会检查您的视图文件夹中是否有 web.config 文件,如果没有从 Orchard 的不同视图文件夹中复制一个。

于 2013-08-09T17:13:17.047 回答