Fab*_*zio 19 asp.net-mvc razor asp.net-mvc-3
如何在ASPNET.MVC Razor中使用自定义控件?
我想在Razor视图上使用自定义控件.例如:
<mycontrols:something>@Model.MyVar</mycontrols:something>
Run Code Online (Sandbox Code Playgroud)
要么
<mycontrols:something myattribute="@Model.MyVar" />
Run Code Online (Sandbox Code Playgroud)
请注意,我的目标是仅使用从MvcControl派生的少数控件,仅用于琐碎的重复ui内容.
我试图在视图的顶部找到类似于@Register的语法,但没有任何成功.
然后我去了web.config,添加
<pages>
<controls>
<add tagPrefix="mycontrols" namespace="mynamespace" assembly="myassembly"/>
</controls>
</pages>
Run Code Online (Sandbox Code Playgroud)
但看起来在渲染时会忽略自定义控件.
有人可以帮忙吗?
...可能有点老式,但有时也可以使用自定义控件来使代码更清洁!
mar*_*ind 19
Razor语法根本不支持控件的概念.如果要使用控件,则必须使用ASPX(WebForms)语法.
但是,推荐的MVC模式是使用html辅助函数或部分视图.在Razor中,您还可以使用@helper快速辅助函数的语法.
Dar*_*rov 10
在ASP.NET MVC中应该避免使用自定义服务器控件.他们中的大多数都依赖于ViewState和PostBack,它们是MVC中不再存在的概念.您应该更喜欢使用模板,HTML帮助程序来实现一些可重用的功能.控件的另一个问题是它们中的大多数封装了一些业务逻辑,这些业务逻辑从某处获取数据并呈现它是一种反MVC模式.在MVC中,控制器有责任操纵模型并获取数据并将视图模型传递给视图,该视图应该只显示它.
MVC使用部分视图而不是自定义控件,它们可以以两种方式使用,几乎涵盖了自定义控件可以执行的所有操作
我可以想到的唯一情况是,在mvc视图上放置自定义控件的价值在于,如果您正在处理部分迁移的webforms项目,我怀疑它可以用于除WebFormsViewEngine以外的任何其他内容.
| 归档时间: |
|
| 查看次数: |
20923 次 |
| 最近记录: |