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

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

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

[HttpPost]
[ValidateInput(false)]
public ActionResult Test(string str)
{
return Content("test");
}

三、枚举用法的总结:

工程目录结构如下:

Enum_Type中的代码如下:

namespace Common.Enum
{
public enum Enum_Type
{
未发送 = ,
发送成功 = ,
发送失败 =
}
}

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

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

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

@using Common.Enum;

<h2>Index</h2>
<ul>
<li data-id="@Convert.ToInt32(Enum_Type.未发送)">@Enum_Type.未发送</li>
<li data-id="@Convert.ToInt32(Enum_Type.发送成功)">@Enum_Type.发送成功</li>
<li data-id="@Convert.ToInt32(Enum_Type.发送成功)">@Enum_Type.发送失败</li>
</ul> <select>
<option value="@Convert.ToInt32(Enum_Type.未发送)">@Enum_Type.未发送</option>
<option value="@Convert.ToInt32(Enum_Type.发送成功)">@Enum_Type.发送成功</option>
<option value="@Convert.ToInt32(Enum_Type.发送成功)">@Enum_Type.发送失败</option>
</select>

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

(3)在js里的用法

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

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

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

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

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

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

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

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

六、webapi

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

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

         public string PostLogin([FromBody] PostData data)
{
return "登录成功";
}

PostData类里放需要的参数

         /// <summary>
/// 参数
/// </summary>
public class PostData
{
/// <summary>
/// 用户名
/// </summary>
public string userName { get; set; } /// <summary>
/// 密码
/// </summary>
public string password { get; set; }
}

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

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

         /// <summary> /// 四舍五入 /// </summary>
/// <param name="d">输入的数字</param>
/// <param name="i">保留的位数</param>
/// <returns></returns>
private static double Round(double data, int i)
{
if (data >= )
{
data += * Math.Pow(, -(i + ));
}
else
{
data += - * Math.Pow(, -(i + ));
}
string str = data.ToString();
string[] strs = str.Split('.');
int idot = str.IndexOf('.');
string prestr = strs[];
string poststr = strs[];
if (poststr.Length > i)
{
poststr = str.Substring(idot + , i);
}
string strd = prestr + "." + poststr;
data = Double.Parse(strd);
return data;
}
         /// <summary> /// 小数位数值舍位 /// </summary>
/// <param name="a">保留的数字</param>
/// <param name="n">位数</param>
/// <returns></returns>
public static double Round2(double a, int n)
{ int b = a.ToString("").Length;
int c = a.ToString().Length;
int d = ; if (c > b)
{
d = c - b - ;
}
if (n < d)
{
string Last = a.ToString().Substring(, b + + n); a = double.Parse(Last);
}
return a;
}

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

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

double v =  / ;

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

             //第一种方法
decimal v = (decimal) / ;
//第二种方法
double v1 = 3.0 / 2.0;

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

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

return Json(result, JsonRequestBehavior.AllowGet);

  需改为如下写法即可

return Content(JsonConvert.SerializeObject(result));

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

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

  解决方法:

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

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

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

     public class DataResult<T> where T : class
{
public DataResult()
{
//默认成功
Code = ;
DataList = new List<T>();
}
/// <summary>
/// 状态码
/// </summary>
public int Code { get; set; }
/// <summary>
/// 返回信息
/// </summary>
public string Msg { get; set; }
/// <summary>
/// 返回详细码
/// </summary>
public int Sub_Code { get; set; }
/// <summary>
/// 返回详细信息
/// </summary>
public string Sub_Msg { get; set; }
/// <summary>
/// 返回数据模型
/// </summary>
public T Data { get; set; }
/// <summary>
/// 返回数据模型集合
/// </summary>
public List<T> DataList { get; set; }
/// <summary>
/// 总页数
/// </summary>
public int PageCount { get; set; }
/// <summary>
/// 总条数
/// </summary>
public int Total { get; set; }
}

  十二、转义特殊字符

            string test = "<scrpit>";
string testS = HttpUtility.HtmlEncode(test);
//对转义字符特殊处理(如果是\,前台用JSON.parse转json会报错)
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. MySQL数据物理备份之lvm快照

    使用lvm快照实现物理备份 优点: 几乎是热备(创建快照前把表上锁,创建完后立即释放) 支持所有存储引擎 备份速度快 无需使用昂贵的商业软件(它是操作系统级别的) 缺点: 可能需要跨部门协调(使用操作 ...

  2. 04-C#笔记-数据类型转化

    支持强制类型转换. 常用的转化函数如下: 1 ToBoolean如果可能的话,把类型转换为布尔型. 2 ToByte把类型转换为字节类型. 3 ToChar如果可能的话,把类型转换为单个 Unicod ...

  3. python windows下获取路径时有中文处理

    在windows中用os,path.abspath(__file__)时有中文路径时,默认是转成非unicode格式 这会导致,在其它模块使用该路径时,会报 utf8' codec can't dec ...

  4. 第二阶段冲刺(个人)——five

    今天的计划:优化登录.注册信息的填写判断. 昨天做了什么?做背景. 困难:无

  5. hdu5285-wyh2000 and pupil-(染色法二分图判定)

    http://acm.hdu.edu.cn/showproblem.php?pid=5285 题意:把互不认识的人分到两个组,第一组人数尽可能多. 题解:把互不认识的人连起来,当作二分图,二分图可能有 ...

  6. Pandas | 26 疏离数据

    当任何匹配特定值的数据(NaN/缺失值,尽管可以选择任何值)被省略时,稀疏对象被“压缩”. 一个特殊的SparseIndex对象跟踪数据被“稀疏”的地方. 这将在一个例子中更有意义. 所有的标准Pan ...

  7. python源码解剖

    print()本身就是用了多态:不同类型的对象,其实是调用了自身的print()方法 多态:动物 狗1 = new狗() 用公共的部分来指定类型,实则是调用各自的属性 创建对象有两种方式: 通过C A ...

  8. python paramiko模块简介及安装

    一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支 ...

  9. 【cf补题记录】Codeforces Round #607 (Div. 2)

    比赛传送门 这里推荐一位dalao的博客-- https://www.cnblogs.com/KisekiPurin2019/ A:字符串 B:贪心 A // https://codeforces.c ...

  10. javaWeb如何转发数据,jsp页面如何接收?

      1.情景展示 现在有一个需求就是:请求达到服务器后,服务器需要将请求的数据传给另一个页面,如何实现? 2.目标分析 通过服务器跳转到页面上,有两种实现方式:一种是转发,一种是重定向. 我们知道转发 ...