zoukankan      html  css  js  c++  java
  • MonoRail学习Component

    MonoRail学习目录

    在我们asp.net中,经常有界面代码相同的时候,使用UserControl,在MonoRail中有两种方式来实现页面的重用,
    第一种,只重用view
    如下:
    #parse("home/newslist.vm")
    相当于include这个newslist.vm到指定的页面


    第二种就是Component
    Component创建如下:
    1.创建一组件类NewsList.cs

    using System;
    using Castle.MonoRail.Framework;

    namespace MonoRailWeb.components
    {
     
    /// <summary>
     
    /// NewsList 的摘要说明。
     
    /// </summary>

     public class NewsList : SmartViewComponent
     
    {
      
    public NewsList()
      
    {
      }


      
    public override void Render()
      
    {
       
    //将值传输给View
       this.Context.ContextVars["name"= "这是一个新闻组件";

       
    //显示相应的View
       this.RenderView("News","NewsList");
      }

     }

    }

    2.在views目录下创建components目录,在components目录下在创建news,在news目录下创建newslist.vm文件
    <table>
    <tr><td>$name</td></tr>
    </table>
    这是组件的界面部分

    3.在页面中调用该组件
    #component(NewsList)
    这样一个组件就创建完成了。
    通常,我们会为组件设定一些参数,这样在我们调用组件的时候在设置参数的值。
    那么就需要在组件类中得到参数的值,如下:
    //得到参数ID的值
    string id = Context.ComponentParameters["id"].ToString();

    在页面中设置参数的值
    #component(NewsListById with "id=1")
    若有多个参数,则如下:
    #component(NewsListById with "id=1" "name=test")

  • 相关阅读:
    Leetcode Palindrome Linked List
    Leetcode Delete Node in a Linked List
    Leetcode Ugly Number
    Python 列表解析
    Python 生成器以及应用
    Python 迭代器协议以及可迭代对象、迭代器对象
    Python 装饰器
    Python 函数的嵌套
    Python 闭包函数
    Python 名称空间与作用域
  • 原文地址:https://www.cnblogs.com/maplye/p/383457.html
Copyright © 2011-2022 走看看