zoukankan      html  css  js  c++  java
  • .net mvc控制器传递方法到视图

    很多人都是在视图里面定义方法,然后再使用。我个人也是这么干的。但是为了验证是否可以将方法从控制器传递到视图,所以做了个测试。结果真的可以。原理是利用了委托(delegate),因为委托本身就是一种类型。既然是类型,那么就有实例。有了实例就可以作为View()方法的参数传递到视图。

    下面贴代码:

    ActionResult:

            public delegate string MyDelegate(string content);
    
            public ActionResult DelegateTest()
            {
                MyDelegate myDelegate = (string content) => { return content; };
    
                return View(myDelegate);
            }

    视图:

    <h2>DelegateTest</h2>
    
    @model MvcApplication1.Controllers.TestController.MyDelegate
    
    @Model("delegate test")

    既然委托都可以了,那么C#内置的Func<>委托肯定也是可以的

    ActionResult:

            public ActionResult FunTest()
            {
                Func<string, string> myDelegate = (string content) => { return content; };
    
                return View(myDelegate);
            }

    视图:

    <h2>FunTest</h2>
    
    @model System.Func<string, string>
    
    @Model("fun test")

    使用Func<>或者Action<>委托的好处就是不需要再自定义委托类型了。

    有人会说,你傻啊,定义一个类,在类里面写方法不就行了。可咱这只是纯为了验证是否能实现。

  • 相关阅读:
    科研:保持开放的心灵
    jquary实现轮播图(省略了css样式)
    Django实现注册/登录:方法2
    Django实现注册/登录:方法1
    卸载MySQL出现2503,2502解决方法
    安装MySQL出现2503,2502错误解决方法
    Markdown数学公式
    Linux安装Oracle11.2.0数据库
    Python列表生成式
    R语言apply()函数用法
  • 原文地址:https://www.cnblogs.com/subendong/p/8446195.html
Copyright © 2011-2022 走看看