zoukankan      html  css  js  c++  java
  • C#之MVC3继续整理问题

    1、注释验证
    [EmailAddress(ErrorMessage = "×")],用的MVC3框架,此处报错,找不到类“EmailAddress”,看到原文有using System.ComponentModel.DataAnnotations.Schema;但引用的时候同样报错,using System.ComponentModel.DataAnnotations前面没有错,直到加上Schema后就开始报错了。于是直接改成[RegularExpression(@"(w)+(.w+)*@(w)+((.w+)+)",ErrorMessage = "{0}格式不正确")]
    2、new
    public new string Password { get; set; }
    new,是用来改变一个方法或是一个属性,在其基类中所实现的行为的。 
    具体在程序片段中: public new string Password
    Password,是当前派生类的一个 返回string类型的属性,这个属性是继承而来的,如果不想这个属性如其在基类中所定义的那样实现,可以覆写这个属性:public string Password 
    注意,上面是没有加new的,这样写没有问题,但是编译器会发出警告(它担心你不小心覆写了基类的Password属性),为了不让编译器发出警告(也表明你的确是想覆写这个属性),你可以加上new,就像这样:public new string Password
    如此,编译器就知道,你很清楚,是在覆写该属性,也就不会报警了。
    3、/// <summary>
    https://msdn.microsoft.com/zh-cn/library/5ast78ax.aspx
        eg:
        
    /// <summary>
    ///取超连接参数值
    /// </summary>
    /// <param name="i_Parameter">超连接参数名</param>
    /// <param name="i_defValue">当取值为""时设置的默认值</param>
    /// <returns>返回超连接参数值</returns>
    public static string GQ(string i_Parameter, string i_defValue){}

    这是一个完整的写法, summary这是指明函数的一些参数说明,在vs软件里当你使用这个函数时,他便会有代码提示的
    param里的name就设置成你函数的参数名啦
    /// <param name="i_defValue">当取值为""时设置的默认值</param>
    这样写便知道在使用哪个参数了,i_defValue对应你下面函数里的一个参数名,当取值为""时设置的默认值是提示内容
    4、return default(T)
    default 为泛型代码中的默认关键字

    给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。解决方案是使用 default 关键字,此关键字对于引用类型会返回空,对于数值类型会返回零。对于结构,此关键字将返回初始化为零或空的每个结构成员,具体取决于这些结构是值类型还是引用类型。以下来自 GenericList<T> 类的示例显示了如何使用 default 关键字。
    5、@Html.LabelFor
    1.  @Html.LabelFor(model=>mode.Name) 输出:  <label for="Name">Name</label>  
    2. @Html.LabelFor(model=>mode.Name,"姓名") 输出:<label for="name">姓名</label>  
    3. 如果在上面实体添加[DisplayName("姓名")]特性(引用System.ComponentModel;)则会显示:  
    4. <label for="Name">姓名</label>用于显示汉字很方便  

    6、@Html.EditorFor

    @Html.EditorFor(mode=>mode.Name)
    如果返回的View给Student实体赋予值,则输出输出<input class="text-box single-line" id="Name" name="Name" type="text" value="默认值" />否则Value为"";
    b、@Html.EditorFor(mode=>mode.Name,"templateName")
    第二个参数为模版名称,模版的定义:
    首先在目录View/Shared/建立文件夹EditorTemplates/templateName.cshtml 即:View/Shared/EditorTemplates/templateName.cshtml
    注:这务必用EditorTemplates作为文件夹
    templateName.cshtml代码为: @Html.DropDownList("",new SelectList(new []{"1","2","3"}))表示一个值为1,2,3的下拉列表
    这时就可以调用@Html.EditorFor(mode=>mode.Name,"templateName"),则显示成一个下拉列表,如果模版中设置的一个文本框则显示成文本框。
    同时,也可以在实体Student中的Name属性加上[UIHint("templateName")]特性 如果加上这个则可在调用的时候不用显示指定模版名称
    用@Html.EditorFor(mode=>mode.Name)即可显示成下拉框,同时所有用这个字段的都将变成下拉列表
    相当与Html中的Input控件
    @Html.EditorFor(model=>model.Age)
    页面显示为:   <input id="Age" name="Age" type="text" value="" />

    7、Any和All

    bool anyUSA = customers.Any(c = > c.Country == "USA");
    LINQ方法Any()把传送给它的 表达式c=>c.Country == "USA"应用于customers 列表中的所有数据,如果对于列表中的任意顾客, 表达式是true,就返回true。
    bool allAsia = customers.All(c = > c.Region == "Asia");
    http://book.51cto.com/art/200901/105661.htm
    8、modelstate
    MVC中Controller类有一个ModelState属性集合,可以用来提示传递到视图的model对象是否有错误。ModelState中Error记录识别模型属性的名称和错误信息,并允许指定友好的错误信息。
    9、link属性 type="image/x-icon"

     用于在浏览器地址栏里显示的图片

    这样写了后,在浏览器的地址栏里,图片会显示成你给的路径的这个图片,不过貌似这个路径不能改,只能是网址根目录下的favicon.ico文件,而且现在好像不用写这个,只要根目录下有这个文件,浏览器会自动读取出来并显示~~

  • 相关阅读:
    Java实现二分图的最大权匹配
    Java实现二分图的最大权匹配
    Java实现二分图的最大权匹配
    Java实现二分图的最大权匹配
    Java实现二分图的最大权匹配
    Qt技术优势
    关于qtcreator+vs2008+CDB调试太卡的问题研究(载入符号表,以及VS调试器的注册表信息)
    用友的BS专用浏览器方案
    专访Rust——由Mozilla开发的系统编程语言(目标人群就是那些纠结的C++程序员,甚至也是他们自己)
    比较DirectX和OpenGL的区别(比较详细)
  • 原文地址:https://www.cnblogs.com/djcomcn01/p/5845931.html
Copyright © 2011-2022 走看看