• asp.net mvc ChildActionOnly 和ActionName的用法


    ChildActionOnly的目的主要就是让这个Action不通过直接在地址栏输入地址来访问,而是需要通过RenderAction来调用它。

    <a href="javascript:;" onclick="javascript:document.getElementById('show').style.display=''">

    调用子操作</a>

    <div id="show" >

    <% Html.RenderAction("Test", "ChildTest"); %></div>

    public ActionResult Index()

    {

    return View();

    }

    [ChildActionOnly]

    public ActionResult Test()

    {

    return Content("Hello");

    }

    http://localhost:666/ChildTest/Test

    如果直接这样访问Action的话就会报如下错误:

    操作“Test”只能由子请求访问。

    说明执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
    异常详细信息System.InvalidOperationException: 操作“Test”只能由子请求访问。

    从某种意义上来说也可以增强一定的安全性。

    ActionName的意思就是为Action定义一个新的名称

    [ActionName("NewTest")]

    public ActionResult Test()

    {

    return Content("Hello");

    }

    如果是这样修改后,那么调用的时候就不是Test了,而是NewTest

    <% Html.RenderAction("NewTest", "ChildTest"); %>

    同名的时候不能重载(可以有一个Get,一个Post),

    如:下面两个是可以允许的

    public ActionResult ReadBook()

    {

    }

       [HttpPost]
            public ActionResult ReadBook(int id,int pageNum)
            {
            }

    如果还要定义一样的话,可以通过自定义Action的名字的时候可以的

     [ActionName("Index2")]

     public ActionResult ReadBook(int n,int a,int b)
            {
       }

    转载:http://www.cnblogs.com/monian/p/4118465.html

  • 相关阅读:
    ASP扫盲学习班第六课 添加新保存的数据
    三级联动菜单免刷新加载
    ASP按定制格式导出word文件的完美解决思路
    通用客户资源管理系统(客户资料保护库)
    SmR 通用信息采集系统(新闻小偷)
    ASP扫盲学习班第三课 程序界面的设计
    我的新作品(单身贵族网全站)
    《将博客搬至CSDN》
    我的新作品
    asp函数大全
  • 原文地址:https://www.cnblogs.com/louby/p/6552450.html
Copyright © 2020-2023  润新知