一、MVC中Controller中返回两个对象的写法如下:

  1. return Json(new { code = , msg = "成功", user = user, userInfo = person });

二、前台向后台传入带有html标签的字符串,需要在后台Controller前加入[ValidateInput(false)]

  1. [HttpPost]
  2. [ValidateInput(false)]
  3. public ActionResult Test(string str)
  4. {
  5. return Content("test");
  6. }

三、枚举用法的总结:

工程目录结构如下:

Enum_Type中的代码如下:

  1. namespace Common.Enum
  2. {
  3. public enum Enum_Type
  4. {
  5. 未发送 = ,
  6. 发送成功 = ,
  7. 发送失败 =
  8. }
  9. }

A.在前台(Index.cshtml)用枚举

(1)在web项目中添加Common类库的引用

(2)记得要在Index.cshtml页面头部添加引用

  1. @using Common.Enum;
  2.  
  3. <h2>Index</h2>
  4. <ul>
  5. <li data-id="@Convert.ToInt32(Enum_Type.未发送)">@Enum_Type.未发送</li>
  6. <li data-id="@Convert.ToInt32(Enum_Type.发送成功)">@Enum_Type.发送成功</li>
  7. <li data-id="@Convert.ToInt32(Enum_Type.发送成功)">@Enum_Type.发送失败</li>
  8. </ul>
  9.  
  10. <select>
  11. <option value="@Convert.ToInt32(Enum_Type.未发送)">@Enum_Type.未发送</option>
  12. <option value="@Convert.ToInt32(Enum_Type.发送成功)">@Enum_Type.发送成功</option>
  13. <option value="@Convert.ToInt32(Enum_Type.发送成功)">@Enum_Type.发送失败</option>
  14. </select>

 效果(样式我都没写,只是想展示下效果)

(3)在js里的用法

  1. <script type="text/javascript">
  2. var state = 0;
  3. if(state=='@((int)Enum_Type.未发送'))
  4. {
  5. }
  6. </script>

  B.枚举常用的方法(我每次用每次查,捂脸中)

  1. //根据名称获取对应的数字,结果为:3
  2. int enum_Int =(int) Enum.Parse(typeof(Enum_Type), "发送失败");
  3. //根据数字获取名称,结果为发送失败
  4. string enum_String = Enum.GetName(typeof(Enum_Type), );
  5.  
  6. //获取枚举类型的数字,结果为:3
  7. int enumInt = (int)Enum_Type.发送失败;
  8. //获取枚举类型的字符串,结果为发送失败
  9. string enumString = Enum_Type.发送失败.ToString();

四、controller中参数设置为可为空的方法

  1. [HttpPost]
  2. public ActionResult test(string userName,DateTime? startTime)
  3. {
  4. DateTime dt = startTime == null ? DateTime.Now : startTime.Value;
  5. return Content("成功");
  6. }

使用场景:参数startTime可以传也可以不传

五、计算分页页数需要用到的方法

  1. 1    //总页数
  2. decimal d = (decimal)((decimal)roleList.Count / length);
  3. roleList = roleList.OrderBy(r => r.OrderNo).Skip((start - ) * length).Take(length).ToList();
  4. int pageCount = Convert.ToInt32(Math.Ceiling(d));
  5. result.PageCount = pageCount;

六、webapi

(1)webapi中action的名称要以Get或者Post开头,来说明是用的HttpPost还是HttpGet。

(2)参数要通过[FromBody]传递,如果直接写string para,反而接收不到。

  1. public string PostLogin([FromBody] PostData data)
  2. {
  3. return "登录成功";
  4. }

PostData类里放需要的参数

  1. /// <summary>
  2. /// 参数
  3. /// </summary>
  4. public class PostData
  5. {
  6. /// <summary>
  7. /// 用户名
  8. /// </summary>
  9. public string userName { get; set; }
  10.  
  11. /// <summary>
  12. /// 密码
  13. /// </summary>
  14. public string password { get; set; }
  15. }

七、根据固定数据进行数字进行四舍五入/舍去后面的数字

  来源(https://www.tceic.com/708ih500l18583j0496459i9.html)

  1. /// <summary> /// 四舍五入 /// </summary>
  2. /// <param name="d">输入的数字</param>
  3. /// <param name="i">保留的位数</param>
  4. /// <returns></returns>
  5. private static double Round(double data, int i)
  6. {
  7. if (data >= )
  8. {
  9. data += * Math.Pow(, -(i + ));
  10. }
  11. else
  12. {
  13. data += - * Math.Pow(, -(i + ));
  14. }
  15. string str = data.ToString();
  16. string[] strs = str.Split('.');
  17. int idot = str.IndexOf('.');
  18. string prestr = strs[];
  19. string poststr = strs[];
  20. if (poststr.Length > i)
  21. {
  22. poststr = str.Substring(idot + , i);
  23. }
  24. string strd = prestr + "." + poststr;
  25. data = Double.Parse(strd);
  26. return data;
  27. }
  1. /// <summary> /// 小数位数值舍位 /// </summary>
  2. /// <param name="a">保留的数字</param>
  3. /// <param name="n">位数</param>
  4. /// <returns></returns>
  5. public static double Round2(double a, int n)
  6. {
  7.  
  8. int b = a.ToString("").Length;
  9. int c = a.ToString().Length;
  10. int d = ; if (c > b)
  11. {
  12. d = c - b - ;
  13. }
  14. if (n < d)
  15. {
  16. string Last = a.ToString().Substring(, b + + n); a = double.Parse(Last);
  17. }
  18. return a;
  19. }

八、两个整数相除,精度缺失的解决办法

  1.如下代码,v的数值为1

  1. double v = /

  2.想要保留所得的小数的解决方法:

  1. //第一种方法
  2. decimal v = (decimal) / ;
  3. //第二种方法
  4. double v1 = 3.0 / 2.0;

 九、ie浏览器会直接下载json文件解决方案

  如果前台框架使用的是easyui,页面表单提交(post提交则不会出现该问题),后台返回的结果如果为下图所示,则ie浏览器会直接将json文件进行下载。

  1. return Json(result, JsonRequestBehavior.AllowGet);

  需改为如下写法即可

  1. return Content(JsonConvert.SerializeObject(result));

  十、winform中强制关闭所有进程

  需求场景:winfrom应用程序中有N个窗体,但是要求:点击任一窗体上的关闭按钮(自定义的按钮,并非是窗体自带的),整个进程退出。

  解决方法:

  1. System.Diagnostics.Process.GetCurrentProcess().Kill();

  错误尝试: Application.Exit();System.Environment.Exit(0);均尝试,都不成功。

  十一、程序中后台返回的结果类定义

  1. public class DataResult<T> where T : class
  2. {
  3. public DataResult()
  4. {
  5. //默认成功
  6. Code = ;
  7. DataList = new List<T>();
  8. }
  9. /// <summary>
  10. /// 状态码
  11. /// </summary>
  12. public int Code { get; set; }
  13. /// <summary>
  14. /// 返回信息
  15. /// </summary>
  16. public string Msg { get; set; }
  17. /// <summary>
  18. /// 返回详细码
  19. /// </summary>
  20. public int Sub_Code { get; set; }
  21. /// <summary>
  22. /// 返回详细信息
  23. /// </summary>
  24. public string Sub_Msg { get; set; }
  25. /// <summary>
  26. /// 返回数据模型
  27. /// </summary>
  28. public T Data { get; set; }
  29. /// <summary>
  30. /// 返回数据模型集合
  31. /// </summary>
  32. public List<T> DataList { get; set; }
  33. /// <summary>
  34. /// 总页数
  35. /// </summary>
  36. public int PageCount { get; set; }
  37. /// <summary>
  38. /// 总条数
  39. /// </summary>
  40. public int Total { get; set; }
  41. }

  十二、转义特殊字符

  1. string test = "<scrpit>";
  2. string testS = HttpUtility.HtmlEncode(test);
  3. //对转义字符特殊处理(如果是\,前台用JSON.parse转json会报错)
  4. testS = testS.Replace("\\", "\\\\");

十三、Autofac.Integration.Mvc在nugut中名称为Autofac.Mvc5

写在后面的话:都是一些基本的功能,但是自己总是记不住,每次用每次需要查阅。现在记录下来方便自己进行查看。

MVC学习笔记(六)---遇到的小问题汇总的更多相关文章

  1. .NET MVC 学习笔记(六)— 数据导入

    .NET MVC 学习笔记(六)—— 数据导入 在程序使用过程中,有时候需要新增大量数据,这样一条条数据去Add明显不是很友好,这时候最好就是有一个导入功能,导入所需要的数据,下面我们就一起来看一下导 ...

  2. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  3. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  4. MVC学习笔记(四)---使用linq多表联查(SQL)

    1.数据库原型(Students表中的ID和Scores表中的StudentID是对应的) 2.实现效果:查询出每个学生各个科目的成绩(用的是MVC学习笔记(三)—用EF向数据库中添加数据的架构) C ...

  5. MVC学习笔记索引帖

    [MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现 [MVC学习笔记]2.使用T4模板生成其他类的具体实现 [MVC学习笔记]3.使用Spring.Net应用IOC(依赖倒置) [MVC学习 ...

  6. ASP.NET MVC学习笔记-----Filter2

    ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...

  7. ASP.NET MVC学习笔记-----Filter

    ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...

  8. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. .NET MVC 学习笔记(一)— 新建MVC工程

    一..NET MVC 学习笔记(一)—— 新建MVC工程 接触MVC有段时间了,一直想找机会整理一下,可是限于文笔太差,所以一直迟迟羞于下手,想到最近做过的MVC项目也有一些了,花点时间整理一下方便以 ...

随机推荐

  1. 学Redis

    Redis 简介 Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库 Redis 与 其他 key - value 缓存产品有以下三个特点: Redis ...

  2. CodeForces 407E: k-d-sequence

    题目传送门:CF407E. 题意简述: 给定非负整数 \(k,d\) 和一个长度为 \(n\)(\(1\le n\le 2\times 10^5\))的整数序列 \(a\). 求这个序列中最长的一个连 ...

  3. Vue中美元$符号的意思与vue2.0中的$router 和 $route的区别

    vue的实例属性和方法 除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来.例如: var data = { a: 1 } var vm = n ...

  4. 201871010109-胡欢欢《面向对象程序设计(java)》第四周学习总结会

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  5. fiddler深入学习

    参考:https://www.cnblogs.com/zhizhiyin/p/6807649.html http://blog.chinaunix.net/uid-27105712-id-373882 ...

  6. JRebel激活教程

    JRebel的官方地址(https://zeroturnaround.com/software/jrebel),土豪可以自行去官网购买. 安装 打开IDEA-->setting-->plu ...

  7. Checking Types Against the Real World in TypeScript

    转自:https://www.olioapps.com/blog/checking-types-real-world-typescript/ This is a follow-up to Type-D ...

  8. 优先队列优化的 Huffman树 建立

    如果用vector实现,在运行时遍历寻找最小的两个节点,时间复杂度为O(N^2) 但是我们可以用priority_queue优化,达到O(N logN)的时间复杂度 需要注意的是priority_qu ...

  9. 1473. [Ioi2000]Post加强版 n log^2 n做法

    1473. [Ioi2000]Post加强版 n log^2 n做法 题面 有n个城市从负方向向正方向按照1至n标号,\(d[i]\)表示城市i离原点的距离并且\(d[1] = 0\),对于\(i \ ...

  10. Oracle_其他人连接不上自己电脑

    1. 修改文件G:\app\eric\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora文件,listener中的address中加一个你的ip开头的 ...