Bru*_*oLM 18 c# asp.net-mvc asp.net-mvc-3
在Web表单上我们有UserControls.这些控件具有代码隐藏功能,可以在不依赖于其他内容的不同项目/解决方案中使用.
我想创建一个控件来呈现一些控件,并且会有一些"触发事件"的链接.我希望它们不会附在我的网站上,我希望能够在另一个网站上使用相同的"控件".MVC中的等价物是什么?是否可以使用控制器编译视图并在其他地方使用DLL?
mar*_*ind 17
与MVC中WebForms风格的可重用用户控件最接近的功能是html帮助程序.html帮助器是一种返回一些标记的方法.建议的方法是以扩展方法off HtmlHelper或MVC页面的其他属性的形式实现它们:
public static IHtmlString MyControl(this HtmlHelper helper, string value) {
return new HtmlString("<p>" + value + "</p>");
}
Run Code Online (Sandbox Code Playgroud)
您可以直接将此方法添加到MVC项目中,也可以将其添加到单独的类库中.类库需要引用的唯一内容是System.Web.Mvc.dll作为HtmlHelper参考(如果使用更多类型,它可能还需要System.Web.dll).
你通常从你的视图中调用它们(这个例子使用了MVC 3中新增的Razor语法)
@Html.MyControl("my value")
Run Code Online (Sandbox Code Playgroud)
虽然表面上的html帮助程序像用户控件一样发出标记,但是存在显着差异.最重要的一点是MVC视图没有WebForms页面生命周期的概念.这意味着与用户控件不同,html助手会在一次传递中呈现.WebForms中没有像Init,Load,Render等多个阶段,您可以在其中连接服务器端事件以与页面上的其他控件进行交互.
根据您所讨论的特定类型的事件,可能有适当的以MVC为中心的技术来解决您的任务.你能提供更多关于你想做什么的细节吗?Html助手可以非常强大.例如,内置的MVC输入控件就像TextBoxFor可以挂钩客户端验证等.
| 归档时间: |
|
| 查看次数: |
11549 次 |
| 最近记录: |