zoukankan      html  css  js  c++  java
  • Mvc视图编写自定义辅助方法:

    为了是Asp.net MVC变成经典的Asp页面,如果代码比较多,不仅仅是一个属性,包含一些操作是,就应该编写自己的辅助方法

    示例:

    View:

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true"

        CodeBehind="~/Views/CustemHlper/TestHelper.cs" Inherits="MvcTest.Views.CustemHlper.TestHelper" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">

        CustemHleper

    </asp:Content>

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

        <h2>

            CustemHleper</h2>

        <table>

            <%

                int rowindex = 0;

                foreach (var book in ViewData.Model)

                { %>

            <%if (rowindex++ % 2 == 0)

              { %>

            <tr style="background-color: Yellow">

                <%}

              else

              { %>

                <tr>

                    <%} %>

                    <td>

                        <%= book.Book_no%>

                    </td>

                    <td>

                        <%= WriteDetailLink(book) %>

                    </td>

                    <td>

                        <%= book.Book_name%>

                    </td>

                    <td>

                        <%= book.Book_author%>

                    </td>

                </tr>

                <%} %>

        </table>

    </asp:Content>

     

    Code_Cs:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.Mvc;

    using MvcTest.Models;

    using System.Web.Mvc.Html;

    namespace MvcTest.Views.CustemHlper

    {

        public partial class TestHelper:ViewPage<IList<Books>>

        {

            protected string WriteDetailLink(Books book)

            {

                return Html.ActionLink("Detail", "Detail", new     { id=book.Book_no}).ToString();

            }

        }

    }

    Controller:

     public ActionResult TestHelper()

            {

                Books book = new Books { Book_no = "SZ1000090", Book_author = "lin.su", Book_name = "大话设计模式" };

                IList<Books> list = new List<Books>();

                list.Add(book);

                ViewData.Model = list;

                return View();

            }

    如果辅助方法是针对特定视图,这种方法很好,如果希望编写一个更大范围中使用的辅助方法,那就必须编写为核心Htm辅助方法的对象扩展方法,如编写一个table 的隔行换色:

    示例:

    要为每个Html创建一个扩展方法,需要使用下面的语法;

    public static string AlternateRowColor(this System.Web.Mvc.HtmlHelper herlper, ....);

     public static class TableHelper

        {

            public static string AlternateRowColor(this System.Web.Mvc.HtmlHelper herlper, int row, string color)

            {

                if (row % 2 == 0)

                {

                    return "background-color:" + color;

                }

                else

                {

                    return "";

                }

            }

        }

    在View页面这样就可以调用:

    示例;

    <tr style="<%=Htm.AlternateRowColor(rowindex ++,"Yellow")%>">

  • 相关阅读:
    IOS UIwebview 背景色调整
    文件的创建 判断是否存在文件 读取 写入
    IOS 关于ipad iphone5s崩溃 解决
    iOS tabbar 控制器基本使用
    iOS 关于流媒体 的初级认识与使用
    总结 IOS 7 内存管理
    iOS 应用首次开启 出现引导页面
    IOS UItableView 滚动到底 触发事件
    IOS 应用中从竖屏模式强制转换为横屏模式
    iOS 定位系统 知识
  • 原文地址:https://www.cnblogs.com/linsu/p/2413508.html
Copyright © 2011-2022 走看看