• ASP.NET MVC笔记


    1.[Authorize] 过滤器也支持指定Users 或Roles 属性,该属性要求用户必须登录,此外还要求用户必须在
    允许的用户列表中或允许的角色成员。例如,如下代码仅允许2 个指定的用户,“scottgu”和“billg” 访
    问/Dinners/Create 路径:
    [Authorize(Users="scottgu,billg")]
    public ActionResult Create() {
    ...
    }
    将特定的用户名直接写在代码中不易于将来的代码维护,更好的办法是定义一个roles(角色),然后通
    过数据库或者活动目录(Active Directory)映射用户到角色中。ASP.NET 提供了一个内置的角色管理API
    和一组内置的Role provider(包括SQL 和活动目录),帮助实现用户/角色的映射。我们接着更新代码,
    仅允许admin 角色的用户访问/Dinners/Create URL。
    [Authorize(Roles="admin")]
    public ActionResult Create() {
    ...
    }



    2.public bool IsUserRegistered(string userName) {
    return RSVPs.Any(r => r.AttendeeName.Equals(userName,
    StringComparison.InvariantCultureIgnoreCase));


    3.<% if (Request.IsAuthenticated) { %>

    3.

    dinner.RSVPs.Add(myRSVP);//添加一条RSVP表的记录,dinners表跟RSVP表式主外键的关系

    4.

    public ActionResult Index() {

    var dinners = dinnerRepository.FindUpcomingDinners().ToList();

    return View("Index", dinners);

    5.首先将光标定位在一个controller action 方法体中,然后右键点击,在弹出菜单中选择Add View 菜单项,

    就可以创建一个新的视图模板了

    6.

    [AcceptVerbs(HttpVerbs.Post)]

    public ActionResult Edit(int id, FormCollection formValues) {

    ...

    }

    当对重载的action 方法添加[AcceptVerbs] 属性后,ASP.NET MVC 根据进来的HTTP 动作,自动分发请求

    给合适的action 方法。HTTP POST 请求/Dinners/Edit/[id] 将由上述Edit 方法负责处理,然而所有其他的

    HTTP 请求/Dinners/Edit/[id] 将由之前定义的Edit 方法负责(该方法没有[AcceptVerbs]属性)

    7.

    Controller 类有一个ModelState 属性集合,可以用来提示传递到视图的model 对象是否有错误。ModelState

    ASP.NET MVC Framework Step by Step 中文版

    http://www.agiledon.com 制作; 本中文版来源于http://blog.entlib.com/entlibforum/Default.aspx; AgileDon 修订排版

    中Error 记录识别模型属性的名称和错误信息,并允许指定友好的错误信息。

    创建partial view模板,命名为DinnerForm.ascx,具体操作:

    Views/Dinners右键选择Add->view,在弹出的Add View对话框中,对新的视图命名DinnerForm,并选择Create a partial view复选框,并指明将传入DinnerFormViewModel类,再点击Add按钮。

    调用方法1.<% Html.RenderPartial("DinnerForm")%> 2.<% Html.RenderPartial("~Views/Dinners/DinnerForm.ascx")%>

    .ToList()返回的是ActionResult类型,linq语句返回的是IQueryable<T>类型。

    (int? page) .Skip((page??0)*pageSize) //C#操作符??,该操作在处理nullable类型时,如果page参数为空null,则对page赋值为0

    添加[Authorize]过滤器属性到指定的方法上,如果它没有带任何参数,则强制要求用户请求action方法时必须登录,否则重定向到登陆页面。当重定向时,原来的请求url会作为querystring参数跟在url后面,在登录完成后再次重定向用户返回开始请求的页面。

    在查询当前登录的用户名时,我们可以使用Controller基类公开的User.Identity.Name属性

    public bool IsUserRegistered(string userName){

    return RSVPs.Any(r => r.AttendeeName.Equals(userName,StringComparison.InvariantCultureIgnoreCase));

    }

    return Content("Thanks1"); //返回的类型是ActionResult

    创建接口文件:

    将光标定位到已经实现方法的类中,右键选择Refactor->Extract Interface,随后将弹出对话框并自动选择类中的所有公共的方法

    创建实现接口方法的类文件(正好是上面的相反操作):

    右键点击冒号后的接口->选择Implement interface '接口名'

  • 相关阅读:
    五种方法实现python3-随机生成10位包含数字和字母的密码
    用matplotlib中imshow()函数绘图
    MTNET 自用ios网络库开源
    移动时代软件测试团队该往哪里去?
    自己做的加速app测试流程的小工具,目前打算开放使用,想注册的朋友抓紧了,嘻嘻
    golang append
    Invalid Image Path
    xcode 插件之KSImageNamed-Xcode
    dissmiss a UISearchBar with an SearchBarController
    nginx server_name
  • 原文地址:https://www.cnblogs.com/cw_volcano/p/1947608.html
Copyright © 2020-2023  润新知