一、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. shell之命令代换,将当前路径存放在变量中,然后使用变量

    重要的 命令代换`` 反引号 shell先执行该命令,然后将命令的结果存放在 变量中 例如 var=`pwd` echo $var 也可以用其$()替换 var=$(date) echo $var 删 ...

  2. LCD编程_画点线圆

    上篇博客中进行了lcd的简单测试,这篇博客将进行更加复杂的测试——画点.画线.画圆.画线和画圆是在画点的基础上实现的,因此本篇博客重点实现画点操作. 先抛出这样的一个问题,已知: (x,y)的坐标: ...

  3. 在windows下安装Superset

    前言 最近想用一下Superset,这个是一个开源项目,可以直接通过写sql来生成图表,有时候对一些图表需求比较多的时候,可以用的上. Superset是由Airbnb(知名在线房屋短租公司)开源BI ...

  4. python中的__init__(self)是什么意思呢

    python中的__init__(self)是什么意思呢 init(self)这个时类的初始化函数 1 2 3 4 class Obj: def init(self): print 1 obj = O ...

  5. 【反防盗链】img 标签 访问图片 返回403 forbidden问题

    解决方案,页面头添加 <meta name="referrer" content="no-referrer" /> 隐藏请求体中标注来源referr ...

  6. [51nod1227]平均最小公倍数(莫比乌斯反演+杜教筛)

    题意 求 $\sum_{i=a}^b \sum_{j=1}^i \frac{lcm(i,j)}{i}$. 分析 只需要求出前缀和, $$\begin{aligned}\sum_{i=1}^n \sum ...

  7. Anaconda3(1)Windows10下安装Anaconda3(64位)详细过程

    https://blog.csdn.net/ychgyyn/article/details/82119201 前言Anaconda指的是一个开源的Python发行版本,其包含了conda.Python ...

  8. VMWare中CentOS 7 配置 XShell连接

    https://jingyan.baidu.com/article/363872ec796dfc6e4ba16f09.html http://www.cnblogs.com/iskylite/p/76 ...

  9. 【树形DP】【P3177】[HAOI2015] 树上染色

    Description 给定一棵 \(n\) 个点的带权树,要求选 \(k\) 个点染成黑色,剩下染成白色,最大化两两同色点之间的距离和. Limitations \(0 \leq k \leq n ...

  10. Seminar Schedule

    Seminar Schedule (C2017 | 2019.9-12 | 3rd semester S0500783) *************************************** ...