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积累的更多相关文章

  1. Asp.net MVC知识积累

    一.知识积累 http://yuangang.cnblogs.com/ 跟蓝狐学mvc教程专题目录:http://www.lanhusoft.com/Article/169.html 依赖注入:htt ...

  2. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  3. ASP.NET MVC 5 03 - 安装MVC5并创建第一个应用程序

    不知不觉 又逢年底, 穷的钞票 所剩无几. 朋友圈里 各种装逼, 抹抹眼泪 MVC 继续走起.. 本系列纯属学习笔记,如果哪里有错误或遗漏的地方,希望大家高调指出,当然,我肯定不会低调改正的.(开个小 ...

  4. Web 应用程序中的安全向量 – ASP.NET MVC 4 系列

           Web 程序运行在标准的.基于文本的协议(HTTP 和 HTML)之上,所以特别容易受到自动攻击的伤害.本章主要介绍黑客如何滥用应用程序,以及针对这些问题的应对措施.   威胁:跨站脚本 ...

  5. ASP.NET MVC ModelValidator小结

    当用户通过UI输入数据向程序交互时,都会出现一个潜在的错误,数据错误,要检查用户提交的数据是否正确,需要做数据验证,在ASP.NET MVC中,每当Action执行前都会对传入Action的Model ...

  6. ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上

    原文:ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上 ASP.NET MVC默认采用基于标准特性的Model验证机制,但是只有应用在Model ...

  7. Ninject 在 Winform、 Asp.net MVC中连络EntityFramework的应用

    Ninject 在 Winform. Asp.net MVC中连络EntityFramework的应用( 注入同一个DbContext的应用名人名言:科学是老老实实的东西,它要靠许许多多人民的劳动和智 ...

  8. 关于《ASP.NET MVC企业级实战》

    大家好,我的书<ASP.NET MVC企业级实战>已经出版啦,感谢大家过去的关注与支持!前言部分,出版的时候漏了部分内容,我这里将其贴出来. 本书提供源码和教学PPT课件!(源码在书中第3 ...

  9. 04 入门 - ASP.NET MVC应用程序的结构

    目录索引:<ASP.NET MVC 5 高级编程>学习笔记 用Visual Studio创建了一个新的ASP.NET MVC应用程序后,将自动向这个项目中添加一些文件和目录. 如图所示: ...

随机推荐

  1. JavaScript中call、apply个人理解

    JavaScript中call.apply个人理解 一句话即通俗的说:call.apply 是为了改变this的状态而存在的 }; } function personInfo(name,age){ t ...

  2. Codeforces 372B Counting Rectangles is Fun:dp套dp

    题目链接:http://codeforces.com/problemset/problem/372/B 题意: 给你一个n*m的01矩阵(1 <= n,m <= 40). 然后有t组询问( ...

  3. html5制作坦克大战

    全部html5都采用绘图技术完成.坦克是画出来的.(坦克,子弹,墙,水,草坪) 首先我们画出坦克. 坦克是两边两个矩形,中间一个大矩形,矩形了有一个圆,还有一根线. 画出坦克的思路是以坦克的左上角为参 ...

  4. (转)edm注意事项

    格式编码 1.页面宽度请设定在600到800px以内,长度1024px以内. 2.HTML编码请使用utf-8. 3.HTML代码在15KB以内.(各个邮箱的收件标准不一样,如果超出15KB您的邮件很 ...

  5. 一 Django框架介绍——用pycharm创建Django项目

    Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...

  6. JS+css3焦点轮播图PC端

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. java支付宝开发-00-资源帖

    一.一些重要的官方文档 1.沙箱登录 2.沙箱环境使用说明 3.如何使用沙箱环境 4.当面付产品介绍 5.扫码支付接入指引 6.当面付快速接入 7.当面付接入必读 8.当面付进阶功能 9.当面付异步通 ...

  8. Java_异常_02_java.lang.NoClassDefFoundError: org/apache/log4j/Level

    总结:解析Json时,除了要导入json-lib-2.2-jdk15.jar外,还要导入: commons-beanutils.jar, commons-httpclient.jar, commons ...

  9. 02 - 看一眼Django都有啥

    Django是源自于fast-paced newsroom environment 因此Django的目的就是为了使得web开发变得简单有效 下面的内容是一个用Django开发的a database- ...

  10. ACM学习历程—POJ 3764 The xor-longest Path(xor && 字典树 && 贪心)

    题目链接:http://poj.org/problem?id=3764 题目大意是在树上求一条路径,使得xor和最大. 由于是在树上,所以两个结点之间应有唯一路径. 而xor(u, v) = xor( ...