一、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. 短uuid生成

    UUID UUID是128位的全局唯一标识符,通常由32字节的字符串表示.它可以保证时间和空间的唯一性,python中称为UUID,其他语言中可能称为GUID. 它通过MAC地址.时间戳.命名空间.随 ...

  2. 半小时上手laya

    laya的性能挺高,跟顶级的pixi.js差一些.比egret的性能强一些 laya的代码是偏功能性的, 观赏性,可读性比很差. 第一步,github上看了下,layaair二百星不到? 想不到堂堂的 ...

  3. React源码 memo Fragment StrictMode cloneElement createFactory

    1.memo react 16.6 推出的 api ,他的用意是给 function component 也有 PureComponent 这样一个类似的功能,因为我们知道 PureComponent ...

  4. matplot 绘制定制饼图

    1.普通风格 代码 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = 'SimHei' # 使图形中的中文正常编码显示 ...

  5. D. Maxim and Array

    https://www.cnblogs.com/qscqesze/p/5925893.html  原博客 http://codeforces.com/group/1EzrFFyOc0/contest/ ...

  6. 工作不久的安卓开发者,他们是这样规划自己的Android学习路线

    Android开发工作者工作不久的时候,会有一段迷茫期,觉得自己应该再学一点,却不知道从何学起,该怎样规划自己的学习路线呢?今天,我给大家梳理一下Android基础,就像建造房屋一样,要建造一座宏伟的 ...

  7. selenium+python关于页面滚动条滑动到底的问题总结

    1.如果滚动条是针对整个HTML可以用如下方式: js = "var q=document.documentElement.scrollTop=10000" # documentE ...

  8. mysql 单表,多表,符合条件,子查询

    单表: HAVING过滤 二次筛选 只能是group by 之后的字段 1.查询各岗位内包含的员工个数小于2的岗位名.岗位内包含员工名字.个数 select post,group_concat(nam ...

  9. Java 包扫描器

    包扫描器 获取一个包下的所有类,然后使用默认的类加载器加载到内存中 public static List<Class<?>> scanByPackage(String pack ...

  10. Github api【Restful接口规范】

    Overview This describes the resources that make up the official GitHub REST API v3. If you have any ...