当前位置: 首页 > news >正文

asp.net MVC Controller 小记

1.调用。有这样一个action:
  public void method1(string id1, string id2, string id3)
  {
            Response.Write("id1: " + id1 + " id2 : " + id2 + " id3 :" + id3);
  }




2.调用:
<%: Html.ActionLink("invoke mothod1 ","method1",new{id1="1",id2="2",id3="3"}) %>




此时已成功调用,但URL为:http://localhost:4803/test/method1?id1=1&id2=2&id3=3,显得非常臃肿,现在要修改多参数的显示格式


3.为它专门添加一个路由即可(再次强调,新添加的路由要写在默认路由前面,好让它先被找到):


  routes.MapRoute("method1Rt",
                "test/method1/{id1}-{id2}-{id3}", 
                new { controller="Test",action="method1"});




再次调用,URL为:
http://localhost:4803/test/method1/1-2-3




4.若想跨controller调用,可在new{}里面指定一下controller即可:


<%: Html.ActionLink("invoke mothod1 ","method1",new{controller="test",id1="1",id2="2",id3="3"}) %>




5.提供默认参数。必要情况下,可以提供默认参数,这样的话,带或不带默认参数的情况都可以匹配
<%: Html.ActionLink("invoke mothod1 ","method1",new{controller="test",id1="1",id2="2",id3="3",id4="5"}) %>
和  <%: Html.ActionLink("invoke mothod1 ","method1",new{id1="1",id2="2",id3="3"}) %> 


都会调用

public void method1(string id1, string id2, string id3,string id4="4")
        {
            Response.Write("id1: " + id1 + " id2 : " + id2 + " id3 :" + id3 + "id4: " + id4);
        }




但是这样的话URL就不美观了:
http://localhost:4803/test/method1/1-2-3?id4=5


6.可以显式定义action的名称:
[ActionName("mth1")]
        public void method1(string id1, string id2, string id3,string id4="4")
        {
            
            Response.Write("id1: " + id1 + " id2 : " + id2 + " id3 :" + id3 + "id4: " + id4);
        }


路由也要改一下action名称:
 routes.MapRoute("method1Rt",
                "test/mth1/{id1}-{id2}-{id3}",
                new { controller = "Test", action = "mth1" });


view也要改一下:
 <%: Html.ActionLink("invoke mothod1 ","mth1",new{id1="1",id2="2",id3="3"}) %>




7.需要异步的情况需要用到异步的controller,继承AsyncController类


8.使用[Authorize]来限定必须登录才能调用


9.使用AsyncTimeout(5000)]来定义超时的最大秒


10.关于ajax与controller通信参见:http://blog.csdn.net/csharp25/article/details/7966663

相关文章:

  • access 如何让ID列重新开始
  • asp.net mvc view使用小结(TEXTBOX为例)
  • C#正则表达式整理备忘
  • asp.net mvc view 使用小结2
  • asp.net mvc2 ajax 基本调用
  • 秒大刀之旅----M2模型绘制
  • C# TASK 使用实例
  • 今天宝宝生日
  • Windows 7 的一些使用技巧
  • 无法自动调试WebService,未能远程调试过程,这通常说明未在服务器上启动调试
  • WCF 配置错误:没有与给定的地址“{0}”匹配的协议绑定。协议绑定在 IIS 或 WAS 配置中的站点级别配置。
  • [Web开发] IE8中如何防御网站被Clickjacking攻击
  • Ashx 文件
  • [IE编程] IE 是如何决定Accept-Language 属性的
  • WCF 第一个服务练习
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Angular6错误 Service: No provider for Renderer2
  • es6要点
  • JavaScript中的对象个人分享
  • jquery ajax学习笔记
  • LintCode 31. partitionArray 数组划分
  • Octave 入门
  • webpack入门学习手记(二)
  • 服务器之间,相同帐号,实现免密钥登录
  • 力扣(LeetCode)965
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 试着探索高并发下的系统架构面貌
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 线上 python http server profile 实践
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 阿里云服务器如何修改远程端口?
  • ‌Excel VBA进行间比法设计
  • #android不同版本废弃api,新api。
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (八)c52学习之旅-中断实验
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)ssm码农论坛 毕业设计 231126
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)重识new
  • (转载)Linux 多线程条件变量同步
  • **python多态
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .dwp和.webpart的区别
  • .NET CLR基本术语
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core控制台应用程序初识
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .sh 的运行
  • [ IDE ] SEGGER Embedded Studio for RISC-V