我在ASP.Net MVC HtmlHelpers上看到了一些教程,他们总是将HTML直接包含在SourceCode中。
我想创建可重复使用的控件,这样我就不必在下一个项目中反复编写一个Login视图及其部分内容。
如果我能编写DLL并将我创建的所有用户控件放在其中,那么最好的事情就是
前段时间我用AngularJS编写了一个应用程序,并且有指令
在他们身上是templateUrl
。在Asp.Net MVC中有类似的东西吗?
我使用的是Razor View Engine和.Net Framework 4.0。
我知道我可以使用部分视图,但部分视图似乎在dll中不起作用
答案 0 :(得分:1)
“如果我能编写一个DLL并将所有创建的用户控件放在其中,那么最好的事情就是” - 你可以。有一个小作弊使得一切都很容易。
编写html帮助程序时,请确保将名称空间更改为System.Web.Mvc.Html
。
如果您使用TagBuilder
类,则不应在C#代码中使用过多的html。
然后,如果你在项目中引用你的dll,你应该可以从你的剃刀视图中访问html帮助器
您可以使用其他命名空间,但您必须编辑Views文件夹中的web.config文件,并在<system.web.webPages.razor>
部分添加对命名空间的引用。通过重用已经引用的命名空间,您可以节省一些配置麻烦。
根据您希望在两者之间共享代码的项目数量和数量,您还可以考虑构建服务器产品(我的团队在需要支付许可证之前使用TeamCity大约2年)。然后,您可以生成自己的自定义NuGet包,它允许您共享(和管理更新)部分视图,编辑器模板,HTML帮助程序等等。