zoukankan      html  css  js  c++  java
  • MVC小记备忘

    1,页面用<dl><dt><dd>和Bootstrap的"dl-horizontal"类布局页面,使每一个属性名和属性值占一行

    <dl class="dl-horizontal">
            <dt>
                @Html.DisplayNameFor(model => model.FirstName)
            </dt>
            <dd>
                @Html.DisplayFor(model => model.FirstName)
            </dd>
    </dl>

    2,函数Html.EnumDropDownListFor,必须要MVC5才可以使用

    @Html.EnumDropDownListFor(model => model.Sex)

    它会根据Sex这个Enum变量来生成下拉菜单。这个Enum的定义如下:

    public enum Sex
    {
         Male, Female
    }

    那么它生成的下拉菜单代码如下:

    <select data-val="true" data-val-required="Sex 字段是必需的。" id="Sex" name="Sex">
    <option selected="selected" value="0">Male</option>
    <option value="1">Female</option>
    </select>

    3,@Html.AntiForgeryToken()函数的作用是抵御网页跨站请求伪造漏洞(CSRF Cross-site request forgery)。这个漏洞可以盗用登录用户身份发送恶意请求。比如一个用户登录了网上银行,然后访问攻击者的网站,网站就会通过登录用户发出请求来获取银行信息。

    4,Action的参数是以worker实例传递的。也就是说Create.cshtml提交的4个值被赋值给work然后把worker传递给Create作为参数。而这个参数前面的[Bind(Include = "FirstName, LastName, Sex, Rating")]是为了防止过多提交(overposting)攻击的。从Create.cshtml的代码可以知道,这个页面只会提交4个值。而黑客可以有办法通过这个页面提交更多的值给当前Action,而这些多出来的值也会存在worker实例中被添加到数据库,这无疑是危险的。因此[Bind(Include = "")]就限定了不管你提交多少值,我这个Action里只接受"FirstName, LastName, Sex, Rating"这4个值。保证了页面的安全性。

    5,ModelState.AddModelError()函数可以给Model添加一条错误信息,函数的第一个参数是key,用于查找这个错误信息,第二个参数是错误信息的具体内容。这个错误信息可以在View中通过Html.ValidationMessage("unableToSave")来访问到。

  • 相关阅读:
    Linux 安装apache2时候遇到的问题
    ubuntu安装php时出现error: xml2config not found. Please check your libxml2 installation 的解决办法
    Linux一块网卡绑定2个IP地址
    php 满足条件后跳转的几种方法.
    Linux 安装php 遇到 libtool: link: `ext/date/php_date.lo' is not a valid libtool object
    js 光标移动到输入框最后位置函数
    Linux iptables 防火墙相关命令介绍及使用
    tcpdump的简单选项介绍
    子网掩码转换函数
    Linux 十六进制转换十进制的函数
  • 原文地址:https://www.cnblogs.com/sky2014/p/4287825.html
Copyright © 2011-2022 走看看