Asp.net MVC 中的自定义控件的使用

来源:互联网 发布:无尺度网络 编辑:程序博客网 时间:2024/05/22 16:56

 

自定义控件

RenderPartial

ASP.NET MVC中如果要自定义控件的话并不能像WebForm那样用<cc1:xxxx />这样来引用,而要使用Helper。

 

例如我们建立一个ct.ascx

 

 

其内容:

 

1: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

   2: 我是ct.ascx
后在Index.aspx里调用
  1: <%Html.RenderPartial("ct"); %>
OK(注意这里不是用<%=%>显示而是执行语句)

用户自定义控件除了放在调用者同一目录下,也可以放在View/Shared中。而且这种自定义控件也是没有Controller支持的,仅是将View的部分提取为公共使用。

那么如果我们想调用的ascx有逻辑处理或调用数据库,也就是需要Controller的情况下,我们应该怎么办呢。

 

RenderAction

OK比如我想有一个有独立逻辑的ascx.

先要引用 Microsoft.Web.Mvc (http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471)

web.config

/configuration/System.Web/pages/namespaces添加<add namespace="Microsoft.Web.Mvc"/>

那么和建立一个Action是一样的

 

Action:

   1: public ActionResult CtAction() {
   2:     return PartialView();//注意这里不是View
   3: }

View(CtAction.ascx)

   1: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
   2:  
   3: 显示当前Action:<%=this.ViewContext.RouteData.Values["action"]%>
View(Index.aspx):
   1: <%
   2:     Html.RenderAction("ctaction","home"); %>
原创粉丝点击