在VS 2012中使用Orchard CMS和我的View cshtml文件将无法编译

时间:2013-08-09 14:25:53

标签: razor orchardcms

我在@ 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>

2 个答案:

答案 0 :(得分:1)

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

我相信应该有一种方法告诉剃刀通过web.config(主题项目或模块项目中的那些)“看到”dll,但我从来没有花时间让这个工作。如果你使用Dynamic作为你的视图模型,因为Orchard似乎鼓励(我讨厌这个),那么你无论如何都不会得到很多intellisense

答案 1 :(得分:0)

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