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文件,而且现在好像不用写这个,只要根目录下有这个文件,浏览器会自动读取出来并显示~~

  • 相关阅读:
    December 23rd 2016 Week 52nd Friday
    December 22nd 2016 Week 52nd Thursday
    December 21st 2016 Week 52nd Wednesday
    December 20th 2016 Week 52nd Tuesday
    December 19th 2016 Week 52nd Sunday
    December 18th 2016 Week 52nd Sunday
    uva294(唯一分解定理)
    uva11624Fire!(bfs)
    fzu2150Fire Game(双起点bfs)
    poj3276Face The Right Way
  • 原文地址:https://www.cnblogs.com/djcomcn01/p/5845931.html
Copyright © 2011-2022 走看看