之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、注释验证
[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

@Html.EditorFor()
回去二个由说明式表示的靶子中的各种属性所对应的input成分,首若是针对强类型,一般这种办法用得多些
a、@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/建立文件夹艾德itorTemplates/templateName.cshtml
即:View/Shared/艾德itorTemplates/templateName.cshtml
注:这不能够不用艾德itorTemplates作为文件夹
templateName.cshtml代码为: @Html.DropDownList(“”,new SelectList(new
[]{“1″,”2″,”3”}))表示贰个值为1,2,3的下拉列表
那儿就足以调用@Html.艾德itorFor(mode=>mode.Name,”templateName”),则突显成3个下拉列表,借使模版中装置的二个文本框则显得成文本框。
再就是,也得以在实体Student中的Name属性加上[UIHint(“templateName”)]特征
如若加上这么些则可在调用的时候不要展现内定模版名称
用@Html.艾德itorFor(mode=>mode.Name)即可展现成下拉框,同时具有用那么些字段的都将变成下拉列表
相当与Html中的Input控件
@Html.EditorFor(model=>model.Age)
页面彰显为:   <input id=”Age” name=”Age” type=”text” value=””
/>
3、 @Html.EditorForModel()
若果应用私下认可值,不带任何参数,则循环呈现Model中享有的新闻,然而要求放在循环中
如:<input class=”text-box single-line” id=”Name” name=”Name”
type=”text” value=”” />
澳门葡京备用网址 ,   <input class=”text-box single-line” id=”Age” name=”Age”
type=”text” value=”” />

原稿链接:

  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>用于显示汉字很有利
     
  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

6、@Html.EditorFor

实在关于b 作者意识 @Html.艾德itorFor(mode=>mode.Name,”templateName”) 写成

只是因为原作小编说的东西,还有不少看作基础知识的事物,作者都没有控制,所以总计在那边,蓝字是自家加的。

@Html.EditorFor(mode=>mode.Name)
之MVC3继承整治难点。一经回到的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/建立文件夹艾德itorTemplates/templateName.cshtml
即:View/Shared/艾德itorTemplates/templateName.cshtml
注:那必须用艾德itorTemplates作为文件夹
templateName.cshtml代码为: @Html.DropDownList(“”,new SelectList(new
[]{“1″,”2″,”3”}))表示3个值为1,2,3的下拉列表
此刻就足以调用@Html.艾德itorFor(mode=>mode.Name,”templateName”),则显得成贰个下拉列表,若是模版中设置的叁个文本框则体现成文本框。
并且,也足以在实体Student中的Name属性加上[UIHint(“templateName”)]本性要是加上那个则可在调用的时候不要呈现内定模版名称
用@Html.艾德itorFor(mode=>mode.Name)即可呈现成下拉框,同时具有用那几个字段的都将变成下拉列表
相当与Html中的Input控件
@Html.EditorFor(model=>model.Age)
页面突显为:   <input id=”Age” name=”Age” type=”text” value=””
/>

@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”)
第3个参数为模板名称,模版的概念:
先是在目录View/Shared/建立文件夹艾德itorTemplates/templateName.cshtml
即:View/Shared/艾德itorTemplates/templateName.cshtml
注:那必须用艾德itorTemplates作为文件夹
templateName.cshtml代码为: @Html.DropDownList(“”,new SelectList(new
[]{“1″,”2″,”3”}))表示三个值为1,2,3的下拉列表
那会儿就足以调用@Html.艾德itorFor(mode=>mode.Name,”templateName”),则呈现成3个下拉列表,借使模版中装置的一个文本框则显得成文本框。
同时,也得以在实体Student中的Name属性加上[UIHint(“templateName”)]特点
假如加上那么些则可在调用的时候绝不显示钦定模版名称
用@Html.EditorFor(mode=>mode.Name)即可显示成下拉框,同时兼有用这些字段的都将改为下拉列表
相当与Html中的Input控件
@Html.EditorFor(model=>model.Age)
页面展现为:   <input id=”Age” name=”Age” type=”text” value=””
/>

@Html.EditorFor(mode=>mode.Name,@Html.DropDownList(“”,new
SelectList(new []{“1″,”2″,”3”})) 也足以只是生成Html后要么Input
照旧不太知道。

 

7、Any和All

7、Any和All

 

@Html辅助器容易表明,记录些基本的跟HTML中对应的@html扶助器,@Html基本涵盖了html中的表单控件和常用Html
在@Html中,带有For的严重性是针对强类型的Html类型。
用于评释@Html中标签,定义Student对象用于救助表明,

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"
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"

其实最初的想法就是要用DropDownList
控件。后来进一步深造才了然尽管要用DropDownList又绑定model有能够直接用控件@Html.DropDownListFor

public class Student
{
  /// <summary>
        /// 姓名
        /// </summary>
        /// 
        [DisplayName("姓名")]
        public string Name
        {
            get;
            set;
        }


        /// <summary>
        /// 年龄
        /// </summary>
        public int Age
        {
            get;
            set;
        }
}

 用于在浏览器地址栏里突显的图样

 用于在浏览器地址栏里展现的图形

@Html.DropDownListFor(model=>model.字段名,ViewData[“参数名”] as
SelectList);

在cshtml页面定义@model Student
Label标签,在LabelExtensions类中达成
1、 @Html.Label()
回到3个 HTML label 成分和由内定表明式表示的性质的性质名称。
参数:string expression,string labelText
expression:1个表明式表示要显示的属性
labelText:展现文字
例:

如此写了后,在浏览器的地址栏里,图片会显示成你给的不二法门的那个图片,不过貌似那个途径不能改,只可以是网址根目录下的favicon.ico文件,而且以往相近不用写这么些,只要根目录下有这些文件,浏览器会自动读取出来并体现~~

这么写了后,在浏览器的地址栏里,图片会来得成你给的门径的那些图片,可是貌似那么些路子不可能改,只可以是网址根目录下的favicon.ico文本,而且以往类似不用写那几个,只要根目录下有那一个文件,浏览器会自动读取出来并彰显~~

 

@Html.Label("weight")             输出:<label for="weight">weight</label>
@Html.Label("name","姓名")        输出:<label for="name">姓名</label>

澳门葡京备用网址 1

澳门葡京备用网址 2

什么是lable
for标签???

概念和用法

for 属性规定
label 与哪些表单成分绑定。

隐式和显式的沟通

标志平常以下边三种格局中的一种来和表单控件相联系:将表单控件作为标志标签的内容,那样的就是隐式方式,恐怕为
<label> 标签下的 for 属性命名五个对象表单
id,这样正是显式情势。

以上是W3C上的解释,那么显示的正是id喽,隐式正是性质for,用那五个情势来把表单映射成form,不清楚对不对。

 

2、 @Html.LabelFor()
和@Html.Label()类似,只是非同平日针对强类型
例:

@Html.LabelFor(model=>mode.Name)         输出:    <label for="Name">Name</label>
@Html.LabelFor(model=>mode.Name,"姓名")  输出:<label for="name">姓名</label>
如果在上面实体添加[DisplayName("姓名")]特性(引用System.ComponentModel;)则会显示:
    <label for="Name">姓名</label>用于显示汉字很方便

 

好啊,什么叫强类型。

强类型:为具备变量钦定数据类型称为“强类型”。

强/弱类型是指类型检查的严俊程度的。语言有无类型,弱类型和强类型二种。无类型的不检查,甚至不区分指令和数据。弱类型的自笔者批评很弱,仅能严厉的区分指令和数据。强类型的则严谨的在编写翻译期举办检查。

强类型语言在未曾强制类型转化前,不容许两种不相同门类的变量互相操作。Java、C#
、Apex和 Python 等都以强类型语言。

 

3、 @Html.LabelForModel()
例:@Html.LabelForModel(“name”) 输出: <label
for=””>name</label>

 

艾德itor标签,表示应用程序中的Input表单控件,在艾德itorExtensions达成

1、 @Html.Editor() 
再次回到1个由表明式表示的指标中的每种属性所对应的input元素
例:

a,@Html.Editor("name") 输出;<input class="text-box single-line" id="name" name="name" type="text" value="" />

 

在加载的时候为input初叶化值,那里用asp.net MVC新增的ViewBag属性;

@{
        ViewBag.NameValue="张三"; // NameValue为动态类型
        或者
        ViewData["NameValue"]="张三";
    }
    @Html.Editor("NameValue") 输出<input class="text-box single-line" id="NameValue" name="NameValue" type="text" value="张三" />

 

c、@Html.Editor(“name”,Model.Name)
  第三个参数为object additionalViewData 参数 首要为视图模型的数据
(Model为System.Web.Mvc.Model对象,在加载页面引用@model Student 对象),
  但不知情那样Input为什么没突显暗中认可值。不知底不是不asp.net
mvc3中不扶助了,希望掌握的给予证实下。

2、 @Html.EditorFor()
回去二个由表明式表示的指标中的各种属性所对应的input元素,首借使针对强类型,一般那种方法用得多些
a、@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/建立文件夹艾德itorTemplates/templateName.cshtml
即:View/Shared/艾德itorTemplates/templateName.cshtml
注:那不可能不用艾德itorTemplates作为文件夹
templateName.cshtml代码为: @Html.DropDownList(“”,new SelectList(new
[]{“1″,”2″,”3”}))表示七个值为1,2,3的下拉列表
此刻就足以调用@Html.艾德itorFor(mode=>mode.Name,”templateName”),则显得成八个下拉列表,倘诺模版中设置的3个文本框则展示成文本框。
还要,也足以在实体Student中的Name属性加上[UIHint(“templateName”)]特色
假如加上那一个则可在调用的时候绝不彰显内定模版名称
用@Html.艾德itorFor(mode=>mode.Name)即可显示成下拉框,同时具备用这一个字段的都将成为下拉列表
相当与Html中的Input控件
@Html.EditorFor(model=>model.Age)
页面展现为:   <input id=”Age” name=”Age” type=”text” value=””
/>
3、 @Html.EditorForModel()
假如选取默许值,不带任何参数,则循环突显Model中存有的信息,不过必要放在循环中
如:<input class=”text-box single-line” id=”Name” name=”Name”
type=”text” value=”” />
   <input class=”text-box single-line” id=”Age” name=”Age”
type=”text” value=”” />

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website