一、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;
效果(样式我都没写,只是想展示下效果)
(3)在js里的用法
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
写在后面的话:都是一些基本的功能,但是自己总是记不住,每次用每次需要查阅。现在记录下来方便自己进行查看。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章