MVC中的Asp.net服务器控件替代方案

时间:2013-04-07 13:56:29

标签: asp.net asp.net-mvc custom-component

我在Asp.net服务器控件项目中创建Login控件并在Asp.net Web表单项目中使用它 我怎么能在MVC项目中做到这一点?

1 个答案:

答案 0 :(得分:1)

ASP.NET MVC框架并不真正支持服务器端控件的概念。但是,您可以考虑将几种方法用于将视图/逻辑抽象为可重用的组件:

自定义HTML帮助程序

您可以创建自定义HTML帮助程序,这是抽象服务器端逻辑和渲染为“黑盒子”的好方法,类似于自定义控件。这为开发人员提供了一个服务器端API来创建或实例化“控件”。请查看此文章以获取更多信息:http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs

部分观点

部分视图允许您重用一块Razor(如果这是您正在使用的视图类型)。

在另一个视图中包含部分视图有两种典型方法:

  • Html.RenderPartial - 类似于“include”;通过将模型传递给它来呈现视图
  • Html.RenderAction - 执行局部视图的整个MVC生命周期;你指定一个控制器和一个动作,控制器动作返回一个像这样的PartialView:return PartialView("partialName", vm);。从控制器动作返回部分对于通过动态HTML呈现的AJAX请求返回HTML片段特别有用。

这是另一个StackOverflow问题,可能有助于澄清RenderPartial和RenderAction之间的区别:RenderAction RenderPartial