1.    代码中@Html.BeginForm不对,应 @using(Html.BeginForm){}

 

2.   不设置 注解 required属性中的 errormessage,则错误信息就是 xx字段是必需的

3.  view中 根据if提交,若true 输出@name+”退出按钮”

4.同一解决方案中的A(mvc项目),B(EF项目)。A引用了B,在B更改后,只要A重新编译或者生成就可以自动感应到B的改动。生成的意思就是:重新引用项目中的类库。  注意此时IIS 会重启。

 

5.MVC3.0客户端验证,需要引用2个jquery文件,在模版页面中引用这2文件也行,或者不在模版中直接在当前页面中引用。

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

 

@* <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />*@     css文件如果没,就不是红色显示
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>

       <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

 

8.初始化dblifeshopEntitied提示无法加载指定的元数据资源

 

背景:解决方案中有2个项目,一个MVC项目,一个EF项目。MVC项目中引用EF项目,应在MVC项目中的web.config中加入connectstring,并且要注意此字符串的值。

<connectionStrings>
   <add name="DBlifeshopEntities"  connectionString="metadata=res://Lifeshop.Models/DBlifeshop.csdl|res://Lifeshop.Models/DBlifeshop.ssdl|res://Lifeshop.Models/DBlifeshop.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MIKPLE-PC\SQLEXPRESS;Initial Catalog=DBlifeshop;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

 

红色部分Lifeshop.Models为EF项目名称,蓝色部分DBlifeshop为EF项目中的文件名。

 

补充:EF项目关联到数据库后,项目下会增加一个app.config文件,里面存放了数据库路径(*/代表当前项目)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <!--<add name="DB2" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MIKPLE-PC\SQLEXPRESS;Initial Catalog=DBlifeshop;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />-->

    <add name="DBlifeshopEntities"  connectionString="metadata=res://*/DBlifeshop.csdl|res://*/DBlifeshop.ssdl|res://*/DBlifeshop.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MIKPLE-PC\SQLEXPRESS;Initial Catalog=DBlifeshop;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

  </connectionStrings>
</configuration>

 

 

8.项目中 web.config //debug.config  release.config  添加配置转换  区别是啥?

9.  linq 从数据源取数据  (继续完善linq用法)

从集合中取出第一个元素

例:var adm = db.Administrator.FirstOrDefault(x => x.userName==admin.username && x.userPwd == admin.password);

  xx.First(x=>x=1)    通过条件谓词帅选的序列不能为空,否则报错

  xx.FirstOrDefault(xx)  如果空元素,返回空值null

Single( lamba表达式) 返回序列中的一个元素,如果有多个元素就异常,如果集合为空也异常  (序列不包含任何元素,序列包含一个以上的元素)
SingleOrDefault      多个元素异常,没元素则为空

 

2.解决方案中ef(model)项目重新编译项目后,mvc无需编译,也能感知最新的变化,只要先引用了ef项目。
3.注意实体的命名空间,如果有些类名无法访问,应该查看命名空间,注意大小写。 例如:项目中报错类型的,请查看 view页面中强类型 或者 controller页面中的 using 后的命名空间是否正确
*类名可以与类文件名无关,引用的时候不涉及到类的文件名。

4. 三层的定义:web,bll,dao层。  web层其实就是mvc层,或者再把model层单独分离出来。

大概项目就分为:Lifeshop.Web,Lifeshop.models,lifeshop.bll,lifeshop.dao,还可以加入lifeshop.cache层

 

web层引用 models和bll层

bll层引用model层和dao层。  bll层用来封装和数据库操作, web层只要调用bll层的方法,并传入相关的参数就可以进行数据库操作。

        例如:web层需要验证用户有效性,

[HttpPost,ActionName("Index")]
public ActionResult Login(User admin)
{

    if (ModelState.IsValid)
    {
       var adm = UserProfileBll.Get(admin);        //var adm = db.Administrator.Top(

        if (adm != null)
        {

            Session["username"] = adm.userName;
            return View("/Category/Index");
            //RedirectToAction("Index", "Category");
        }
    }
        return View();

}

Bll层验证用户有效性的代码

public class UserProfileBLL
    {      
        ExtendedDBModelContainer _db = new ExtendedDBModelContainer();
        public IQueryable<UserProfile> Get(UserProfile admin)
        {
            var model = _db.Administrator.FirstOrDefault(x => x.userName==admin.username && x.userPwd == admin.password);

            return model;
        }

}

 

11.@Html.Partial("../Home/Top");

 

12.

委托是一种引用方法类型。一旦为委托分配了方法,委托将和此方法拥有完全等效的行为。
委托方法的调用可以像其他任何方法一样,具有参数和返回值
1)签名:函数返回类型,参数
2)方法可以是静态方法,也可以是实例方法
3)可以通过编程的方式更改方法调用,或者像现有类中插入新代码。
只要知道委托的签名,就可以分配自己的委托方法

事件:对象之间的消息传送。   如果直接调用对方给的方法,造成2个类紧密耦合,调用方对被引用方的依赖太强。
B是事件的发布者,A是事件的响应和处理者。

发布者发布消息,订阅者自己处理消息。
发布者定义个委托和事件,然后将事件实例化。订阅者

MVC3;0问题与知识点的更多相关文章

  1. Asp.Net MVC3.0网站统计登录认证的在线人数

    Asp.Net MVC3.0网站统计登录认证的在线人数 前言 对于一个网站来说,统计在线人数是一个很重要的工作.平时也发现很多的网站论坛等都有在线人数的显示.对于一个网站如果在线人数很多,用户看到了这 ...

  2. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  3. 系统补丁更新导致MVC3.0.0升级到3.0.1的问题解决

    在更新了系统补丁之后,会不知觉的将MVC3.0.0升级到MVC3.0.1的问题,解决的思路如下: 1.全部MVC引用使用NuGet进行包的管理. 2.单独把MVC库抽离出来,然后放在单独的项目文件夹, ...

  4. MVC3.0学习笔记之元模型元数据ModelMetaData以及模型元数据提供系统

    模型元数据ModelMetaData是MVC中很重要的概念,它包括但不仅限于 模型的类型,模型包含了哪些属性,属性都是什么类型的,属性上都有什么特性. ASP.NET MVC3.0 提供了默认的模型元 ...

  5. Log4Net异常日志记录在asp.net mvc3.0的应用(转载)

    这篇博客写的很好:http://www.cnblogs.com/qianlifeng/archive/2011/04/22/2024856.html 前言 log4net是.Net下一个非常优秀的开源 ...

  6. MVC2.0==>MVC3.0

    总结出如下4个MVC3.0和2.0的重要区别. 1. @ 符号在 View 页面中的用法: C#代码以 @符号开头,例如 1 <h2>Name: @Model.Name</h2> ...

  7. asp.net mvc3.0第一个程序helloworld开发图解

    步骤一:新建asp.net mvc3.0项目 (选择Razor模板) 步骤二:创建控制器 步骤三:控制器源码内右键创建对应视图 步骤四:控制器内添加代码 步骤五:视图页面输出内容 步骤六:F5调试

  8. mvc3.0中[ValidateInput(false)]失效的问题

    在asp.net mvc3.0中[ValidateInput(false)]特性失效了,只需要在网站根目录中的web.config中做如下配置即可: <system.web> <ht ...

  9. MVC3.0 中Razor 学习

    随着MVC3.0RTM版本的发布,最近将公司的项目从MVC2.0升级到MVC3.0.同时打算在MVC3中全面使用Razor模板引擎.现将Razor学习拿出来和大家分享,如果存在不足的地方欢迎您指出. ...

随机推荐

  1. java 字符串解析为json 使用org.json包的JSONObject+JSONArray

    参考: https://blog.csdn.net/xingfei_work/article/details/76572550 java中四种json解析方式 JSONObject+JSONArray ...

  2. SQL 将列转成字符串并用逗号分隔

    SELECT STUFF((SELECT ',' + FieldName FROM TableName FOR XML PATH('')),1,1,'') AS T 其中的逗号可以换成其它字符 转换完 ...

  3. sql server中index的REBUILD和REORGANIZE的区别及工作方式

    sql server中index的REBUILD和REORGANIZE 转自:https://www.cnblogs.com/flysun0311/archive/2013/12/05/3459451 ...

  4. SVM学习笔记(二)----手写数字识别

    引言 上一篇博客整理了一下SVM分类算法的基本理论问题,它分类的基本思想是利用最大间隔进行分类,处理非线性问题是通过核函数将特征向量映射到高维空间,从而变成线性可分的,但是运算却是在低维空间运行的.考 ...

  5. Java 实现文件随机读写-RandomAccessFile

    现有如下的一个需求,向已存在1G数据的txt文本里末尾追加一行文字,内容如下“Lucene是一款非常优秀的全文检索库”.可能大多数朋友会觉得这个需求很easy,说实话,确实easy,然后XXX君开始实 ...

  6. Config Static IP Address manually in Ubuntu

    The process of the configuration of static IP address in Ubuntu is as follows: ``` $ sudo vim /etc/n ...

  7. C#:DateTime格式增减时间

    DateTime time = DateTime.Now(); DateTime XMinutesrLater = time.AddMinutes(X); // X分钟以后的时间,即在当前时间基础上增 ...

  8. html-2, a img ul li ol dl dt dd 标签与列表标签的简单使用

    <!-- a:  a{ /*清除a标签的下划线*/ text-decoration: none; }  (1)超链接 href 超链接的地址 target: _self 默认 在当前中打开链接地 ...

  9. iOS 手机截屏

    百度地图自带截图功能,可以截取路线列表,保存到本地.可是对比发现截下来的图片并不是app中看到的那样,截图中头部加入了搜索的起点和终点,每段路程的详细站点都已展开,而且图片会根据路线的长短自动判断图片 ...

  10. alias指令别名和 sshpass命令简化ssh登陆

     在之前的一篇博文中 ubuntu下关于profile和bashrc中环境变量的理解 提到过可以编辑bashrc文件,vim ~/.bashrc,来编写自己的小指令,就是给长指令取个简单的别名.比如b ...