• .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<>委托的好处就是不需要再自定义委托类型了。

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

  • 相关阅读:
    poj 1080 dp
    Codeforces Round #280 (Div. 2)
    Codeforces Round #279 (Div. 2)f
    Codeforces Round #278 (Div. 1)
    Codeforces Round #276 (Div. 1)
    搜索
    debug 心得
    ZOJ 1633
    DRF 一对多序列化与反序列化
    HTTP协议
  • 原文地址:https://www.cnblogs.com/subendong/p/8446195.html
Copyright © 2020-2023  润新知