C# 、.NET、ASP.NET MVC积累
2016-10-27
给视图中的select赋值:
控制器:
public ActionResult Add()
{
List<SelectListItem> ClassName = new List<SelectListItem>()
{
new SelectListItem(){Text="广告拍摄", Value="广告拍摄"},
new SelectListItem(){Text="影视拍摄", Value="影视拍摄"},
new SelectListItem(){Text="平面拍摄", Value="平面拍摄"},
new SelectListItem(){Text="综艺节目", Value="综艺节目"},
};
ViewData["ClassName"] = new SelectList(ClassName, "Value", "Text");
return View();
}
视图:
<div class="col-sm-10">
@Html.DropDownListFor(m => model.ClassName, ViewData["ClassName"] as SelectList, new { @class = "form-control", placeholder = "请输入分类名称" })
</div>
2016-11-23
用mvcpager过程中的一个错误,相信也是很多初用mvcpager开发者会掉下去的坑:
错误提示:
The model item passed into the dictionary is of type 'NetCms.Model.CollectModel', but this dictionary requires a model item of type 'Webdiyer.WebControls.Mvc.PagedList`1[NetCms.Model.CollectModel]'.

直白点的说就是控制器传递给视图的实体类的数据类型不是视图中所规定的类型。
详细解释:
我的model层的代码:

我的controller中的代码:

我的view中的代码:

乍一看似乎没有问题,和普通的mvcpager唯一不同的就是PagedList的数据类型是将多个实体类作为了一个大实体类的属性。但是真正调试一下你就会发现在控制器中return view(model)中的model 的数据类型是CollectModel,而视图中所规定的数据类型是pagedlist<CollectModel>,相信这个问题有点经验的老开发人员不用调试就可以看出来。
这个地方改正的做法是将视图中的@model PagedList<NetCms.Model.CollectModel> 改为@model NetCms.Model.CollectModel
一般mvcpager在做单表的分页的时候,控制器中是这样的:

视图中是这样的:

在这里,仔细想一下,其实在控制器中return(list_model)中的list_model的数据类型是pagedlist<WebFocus>,和在视图中@model PagedList<NetCms.Model.WebFocus>引用的数据类型是一样的!!!
感觉C#中的面向对象的思想还没有深入骨髓中。
2017-01-18
ASP.Net中的ajax.beginform:
Html:
<section class="content">
@using (Ajax.BeginForm("insertstore", "StoreMS", new AjaxOptions { HttpMethod = "Post", OnBegin = "FormBeginAddstore", OnSuccess = "FormSuccessAddstore" }))
{
<p>
BranchID:<input type="text" id="branchid" name="branchid" />
</p>
<p>
仓库名称:<input type="text" id="name" name="name" />
</p>
<p>
仓库地址:<input type="text" id="address" name="address" />
</p>
<p>
省:<input type="text" id="province" name="province" />
</p>
<p>
市:<input type="text" id="city" name="city" />
</p>
<p>
镇(区):<input type="text" id="town" name="town" />
</p>
<p>
村:<input type="text" id="vilige" name="vilige" />
</p>
<p>
<input type="submit" value="保 存" />
</p>
}
</section>
JS:
function FormBeginAddstore() {
}
function FormSuccessAddstore() {
}
所需脚本:
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
2017-01-19
Linq多表查询的结果转换成List泛型,在视图中遍历。
/// <summary>
/// 库存列表信息
/// </summary>
/// <returns></returns>
public ActionResult GetStockListData()
{
var data = (from gitem in lde.Goods
join bitem in lde.Brand on gitem.BrandId equals bitem.Id
join titem in lde.GoodsType on gitem.TypeId equals titem.ID
join gsitem in lde.GoodsStore on gitem.ID equals gsitem.GoodsId
join sitem in lde.Store on gsitem.StoreId equals sitem.ID
select new
{
goodsid = gitem.ID,
goodsbrand = bitem.Name,
goodstype = titem.TypeName,
goodsname = gitem.DisplayName,
goodsunit = gitem.Unit,
goodspackage = gitem.Package,
goodsprice = gitem.Price,
goodsimg = gitem.HomeImage,
goodsstore = sitem.Name,
storebranchid = sitem.BranchId,
goodsstock = gsitem.Num
}
).Take(100).ToList();
List<dynamic> oneList = new List<dynamic>();
foreach (var item in data)
{
dynamic dyObject = new ExpandoObject();
dyObject.goodsid = item.goodsid;
dyObject.goodsbrand = item.goodsbrand;
dyObject.goodstype = item.goodstype;
dyObject.goodsname = item.goodsname;
dyObject.goodsunit = item.goodsunit;
dyObject.goodspackage = item.goodspackage;
dyObject.goodsprice = item.goodsprice;
dyObject.goodsimg = item.goodsimg;
dyObject.goodsstore = item.goodsstore;
dyObject.storebranchid = item.storebranchid;
dyObject.goodsstock = item.goodsstock;
oneList.Add(dyObject);
}
ViewBag.data = oneList;
return View();
}
视图部分的代码:
<!-- 主要内容 -->
html <section class="content">
@foreach (var item in ViewBag.data)
{
<p>
@item.goodsid
</p>
<br />
<p>
@item.goodsbrand
</p>
<br />
<p>
@item.goodsname
</p>
<br />
}
</section>
上面的那个方式虽然可以解决问题,但是“数据类型”一直是匿名类型或者虚类型的。下面这个提供了将linq查询的结果在控制器中转换为list<model>的方式:
/// <summary>
/// 将linq查询到的结果转化为强类型的List泛型集合
/// </summary>
/// <returns></returns>
public ActionResult GetStrongTypingFromLinq()
{
List<StockListModel> data = (List<StockListModel>)(from gitem in lde.Goods
join bitem in lde.Brand on gitem.BrandId equals bitem.Id
join titem in lde.GoodsType on gitem.TypeId equals titem.ID
join gsitem in lde.GoodsStore on gitem.ID equals gsitem.GoodsId
join sitem in lde.Store on gsitem.StoreId equals sitem.ID
select new StockListModel()
{
GoodsId = gitem.ID,
GoodsBrand = bitem.Name,
GoodsType = titem.TypeName,
GoodsName = gitem.DisplayName,
GoodsUnit = gitem.Unit,
GoodsPackage = gitem.Package,
GoodsPrice = gitem.Price,
GoodsImg = gitem.HomeImage,
GoodsStore = sitem.Name,
StoreBranchId = sitem.BranchId,
GoodsStock = gsitem.Num
}
).Take(100).OrderByDescending(c => c.GoodsId).ToList();
foreach (var item in data)
{
var theitem = item;
}
return View(data);
}
2017-02-14
在使用EntityFramework(EF)的时候遇到的一个问题:从数据库生成C#的实体模型,但是后来数据库结构和表结构改动了,所以删除了之前的实体模型,然后重新添加了一个实体模型(这里我知道可以用T4模板来完成这个事情,包括EF中的实现也是用的T4的原理,
但是T4模板一直没去研究,不知道怎么玩=_=*)。但是在编译后报错“错误 102 参数 2: 无法从“System.Data.Objects.ObjectParameter”转换为“System.Data.Entity.Core.Objects.ObjectParameter”

解决办法是将“LeadingDebuggerModel.Context.cs”文件中“using System.Data.Objects;”改成“ using System.Data.Entity.Core.Objects;”



原理:EF5和EF5之前的版本引用的是using System.Data.Objects,EF6开始引用的是using System.Data.Entity.Core.Objects;。报这个错误,一般是EF5和EF6共存才会有的错误。
2017-05-03
C#中的var 和 object 和 dynamic:
var:隐式类型、虚类型 object:弱类型 dynamic:动态类型
var变量和object类型变量完全不同,使用object类型声明的变量是弱类型,可以被赋予任何类型的值,而使用var关键字声明的变量与普通变量一样,仍然是强类型变量。var变量被初始化是,其类型即被确定。
var变量与dynamic变量完全不同。var变量是一种静态类型的变量,而dynamic是一种动态类型的变量。静态类型可以执行类型检查、给出智能提示,而动态类型则不可以。
2018-05-31
C#中的string数组转int数组
int[] idsArray = Array.ConvertAll<string, int>(strArray, delegate(string s) { return int.Parse(s); });
C# 、.NET、ASP.NET MVC积累的更多相关文章
- Asp.net MVC知识积累
一.知识积累 http://yuangang.cnblogs.com/ 跟蓝狐学mvc教程专题目录:http://www.lanhusoft.com/Article/169.html 依赖注入:htt ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- ASP.NET MVC 5 03 - 安装MVC5并创建第一个应用程序
不知不觉 又逢年底, 穷的钞票 所剩无几. 朋友圈里 各种装逼, 抹抹眼泪 MVC 继续走起.. 本系列纯属学习笔记,如果哪里有错误或遗漏的地方,希望大家高调指出,当然,我肯定不会低调改正的.(开个小 ...
- Web 应用程序中的安全向量 – ASP.NET MVC 4 系列
Web 程序运行在标准的.基于文本的协议(HTTP 和 HTML)之上,所以特别容易受到自动攻击的伤害.本章主要介绍黑客如何滥用应用程序,以及针对这些问题的应对措施. 威胁:跨站脚本 ...
- ASP.NET MVC ModelValidator小结
当用户通过UI输入数据向程序交互时,都会出现一个潜在的错误,数据错误,要检查用户提交的数据是否正确,需要做数据验证,在ASP.NET MVC中,每当Action执行前都会对传入Action的Model ...
- ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上
原文:ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上 ASP.NET MVC默认采用基于标准特性的Model验证机制,但是只有应用在Model ...
- Ninject 在 Winform、 Asp.net MVC中连络EntityFramework的应用
Ninject 在 Winform. Asp.net MVC中连络EntityFramework的应用( 注入同一个DbContext的应用名人名言:科学是老老实实的东西,它要靠许许多多人民的劳动和智 ...
- 关于《ASP.NET MVC企业级实战》
大家好,我的书<ASP.NET MVC企业级实战>已经出版啦,感谢大家过去的关注与支持!前言部分,出版的时候漏了部分内容,我这里将其贴出来. 本书提供源码和教学PPT课件!(源码在书中第3 ...
- 04 入门 - ASP.NET MVC应用程序的结构
目录索引:<ASP.NET MVC 5 高级编程>学习笔记 用Visual Studio创建了一个新的ASP.NET MVC应用程序后,将自动向这个项目中添加一些文件和目录. 如图所示: ...
随机推荐
- eclipse中使用git技巧总结
之前一直使用svn,刚使用git还是有些蹩脚,今天总结下在使用git中常用技巧 1. ①.整个版本还原 当需要还原到某个版本时(多文件),操作如下 右击项目-->Team-->Show i ...
- maven 3.2.5 的安装及简单示例
http://www.mvnrepository.com 一直没有使用maven,它的作用就不说了,这二天需要用到,发现网上都是以前的版本,所以,我一边配置,一边记录. 一 下载maven 现在很多I ...
- 分享知识-快乐自己:Liunx 搭建 Dubbo
1.首先配置JDK 操作步骤 2.部署 Tomcat ① 上传 Tomcat 7 解压jdk文件:tar -zxvf jdk文件名称 ② tomcat目录下的bin/启动tomcat ③ tail ...
- Python-unittest参数化
做接口测试的时候,同一个接口,输入的参数一样,参数值不一样,这时候,写多个case就是冗余的,就可以用参数化来实现,第三方模块有这个实现参数化的功能,安装pip install nose-param ...
- Oracle学习笔记_02_基本SQL
1.select语句 (1)语法 SELECT *|{[DISTINCT] column|expression [alias],...} FROM table; (2)示例: 选择全部列 SELECT ...
- mfc设置鼠标状态OnSetCursor响应函数
参考文章:1.https://bbs.csdn.net/topics/70084486 2.https://blog.csdn.net/wang15061955806/article/details/ ...
- MFC工程名称与所包含文件名称的关系(工程名可以更改,输出的.dll.exe.lib都以最后工程名命名为准)
创建MFC应用程序时,可以规定MFC程序的工程名称,假设初始为MFCApp,则此后该应用程序的资源文件名称,继承自CWinApp的那个类,包括.def文件,.odl文件等都会以MFCApp打头. 但是 ...
- 转载 解决Android与服务器交互大容量数据问题
对于目前的状况来说,移动终端的网络状况没有PC网络状况那么理想.在一个Android应用中,如果需要接收来自服务器的大容量数据,那么就不得不考虑客户的流量问题.本文根据笔者的一个项目实战经验出发,解决 ...
- python 标准库 —— http(http.cookiejar)
1. cookie 信息的读取 from urllib import request import http from http import cookiejar cookie = cookiejar ...
- 使用 Python 发送短信?
上回食行生鲜签到,我们说到怎么把签到结果发出来,于是就找到了 Twilio. Twilio 是一个位于加利福尼亚的云通信(PaaS)公司,致力于为开发者提供通讯模块的 API.由于 Twilio 为试 ...