MVC 【Razor 视图引擎】案例分析

using MvcApplication1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
    public class LoginController : Controller
    {
        //
        // GET: /Login/

        // 登录视图
        public ActionResult Index()
        {
            return View();
        }

        // 登录验证
        public ActionResult YanZheng(string uname, string pwd)
        {

            bool b = new UsersData().SelectUser(uname, pwd);
            if (b)
            {
                Response.Cookies["user"].Value = uname;
                Response.Cookies["user"].Expires = DateTime.Now.AddDays(3);

                return RedirectToAction("Index", "Home");
            }
            else
            {
                TempData["loginerror"] = "用户名密码错误";
                return RedirectToAction("Index", "Login");
            }

        }

    }
}

登录 控制器

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        @{using (Html.BeginForm("YanZheng", "Login"))
          {
            @:用户名:<input type="text" name="uname" /><br />
            @:密码:<input type="password" name="pwd" /><br />
            <input type="submit" value="登录" />
              if (TempData["loginerror"] != null)
              {
            <div style="color: red;">@TempData["loginerror"]</div>
              }
          }
        }
    </div>
</body>
</html>

登录 视图

--------------------------------------------

using MvcApplication1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        //展示方法
        public ActionResult Index()
        {
            //判断是否登录,有登录信息展示
            if (Request.Cookies["user"] != null)
            {
                return View();
            }
            else
            {    //无登录信息返回原视图
                return RedirectToAction("Index", "Login");
            }
        }

        //添加视图
        public ActionResult Insert()
        {
            return View();
        }

        //添加方法
        //界面上 name 取的名 与字段名一样 会自动拼成匹配的对象
        public ActionResult Insert1(Users u)
        {
            new UsersData().Insert(u);
            return RedirectToAction("Index");
        }

        //修改 接收传值
        public ActionResult Update(string id)
        {
            Users u = new UsersData().SelectUser(id);
            if (u != null)
            {
                return View(u);
            }
            else
            {
                return RedirectToAction("index", "Home");
            }
        }

}

展示,修改,添加 控制器

@{
    Layout = null;
}
@using MvcApplication1.Models;
                               @*引用命名空间*@

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <h1>这是Razor语法出来的视图主界面</h1>

        <table style="width: 100%; text-align: center; background-color: navy;">
            <tr style="color: white;">
                <td>用户名</td>
                <td>密码</td>
                <td>昵称</td>
                <td>性别</td>
                <td>生日</td>
                <td>民族</td>
                <td>操作</td>
            </tr>

            @{
                List<Users> ulist = new UsersData().SelectAll();

                foreach (Users u in ulist)
                {

                <tr style="background-color: white;">
                    <td>@u.UserName</td>
                    <td>@u.PassWord</td>
                    <td>@(u.NickName)同学</td>
                    <td>@(u.Sex == true ? "男" : "女")</td>
                    <td>@u.Birthday.Value.ToString("yyyy年MM月dd日")</td>
                    <td>@u.UserNation.NationName</td>

                    <td>@Html.ActionLink("修改", "Update/" + u.Ids, "Home") </td>
                                                             @*修改--在动作后面接 传的值*@
                </tr>
                }
            }

        </table>
        @Html.ActionLink("添加hehe", "Insert", "Home")
                                                             @*使用超链接添加*@

        <input type="button" value="添加新用户" id="btn1" />
                                                             @*使用普通按钮添加*@
    </div>
</body>
</html>

<script type="text/javascript">

    document.getElementById("btn1").onclick = function () {
        window.location.href = "@Url.Action("Insert", "Home")";

    }                                 @*使用普通按钮添加----方法*@

</script>

展示 视图

@{
    Layout = null;
}
@using MvcApplication1.Models;
                                 @*引用命名空间*@

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Insert</title>
</head>
<body>
    <div>
        <h1>添加新用户</h1>

        @{ using (Html.BeginForm("Insert1", "Home", "post"))

           {

            @:用户名:<input type="text" name="username" /><br />
            @:密码:<input type="text" name="password" /><br />
            @:昵称:<input type="text" name="nickname" /><br />
            @:性别:
            <input type="radio" value="True" id="r1" name="sex" checked="checked" /><label for="r1">男</label>
            <input type="radio" value="False" id="r2" name="sex" /><label for="r2">女</label>
            <br />
            @:生日:<input type="text" name="birthday" /><br />
            @:民族:
            <select name="nation">
                @{
               List<UserNation> unlist = new UserNationData().SelectAll();

               foreach (UserNation un in unlist)
               {
                    <option value="@un.NationCode">@un.NationName</option>
               }        

                }
            </select>
            <br />

            <div id="div1" style="width: 100px; height: 100px; background-color: red;">保存</div>

            <input type="button" value="保存" id="btn1" />

           }
        }

    </div>
</body>
</html>
<script type="text/javascript">
    document.getElementById("div1").onclick = function () {
        this.parentNode.submit();
                                    //点击div时 提交

    }
    document.getElementById("btn1").onclick = function () {
        this.form.submit();

    }                               //普通按钮提交 

</script>

添加 视图

@{
    Layout = null;
}
@using MvcApplication1.Models;
                               @*引用命名空间*@

@model Users
                              @* 声明传进来的强类型的数据类型*@

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Update</title>
</head>
<body>
    <div>
        @{ using (Html.BeginForm("Update1", "Home", "post"))
           {
            @:用户名:<input type="text" disabled="disabled" name="username" value="@Model.UserName" /><br />
            @:密码:<input type="text" name="password" value="@Model.PassWord" /><br />
            @:昵称:<input type="text" name="nickname" value="@Model.NickName" /><br />
            @:性别:

            <input type="radio" value="True" id="r1" name="sex" @(Model.Sex == true ? "checked=‘checked‘" : "") /><label for="r1">男</label>
            <input type="radio" value="False" id="r2" name="sex" @(Model.Sex == false ? "checked=‘checked‘" : "") /><label for="r2">女</label>

            <br />
            @:生日:<input type="text" name="birthday" value="@Model.Birthday.Value" /><br />
            @:民族:
            <select name="nation">
                @{
               List<UserNation> unlist = new UserNationData().SelectAll();

               foreach (UserNation un in unlist)
               {
                    <option @(un.NationCode == Model.Nation ? "selected=‘selected‘" : "") value="@un.NationCode">@un.NationName</option>
               }        

                }
            </select>
            <br />

            <div id="div1" style="width: 100px; height: 100px; background-color: red;">保存</div>
               //用 div 提交

            <input type="button" value="保存" id="btn1" />
               //用普通按钮提交

           }
        }
    </div>
</body>
</html>
<script type="text/javascript">
    document.getElementById("div1").onclick = function () {
        this.parentNode.submit();
                                       //用 div 提交
    }
    document.getElementById("btn1").onclick = function () {
        this.form.submit();
                                      //用普通按钮提交
    }

</script>

修改 视图

--------------

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Test1</title>
    <script src="~/js/jquery-1.7.1.min.js"></script>
</head>
<body>
    <div>

        <input type="text" id="txt1" name="t1" />
        <input type="button" value="验证" id="btn1" />

    </div>
</body>
</html>

<script type="text/javascript">

    $("#btn1").click(function () {
        $.ajax({
            url: "/ajax/aaa.ashx", data: { "t": $("#txt1").val() }, type: "post", dataType: "json",
            success: function (msg) {
                if (msg.ok == "0") {
                    alert("可用");
                }
                else {
                    alert("抱歉,已被占用!!");
                }

            }
        });

    });

</script>

番外--用AJAX验证

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MvcApplication1.Models;

namespace MvcApplication1.ajax
{
    /// <summary>
    /// aaa 的摘要说明
    /// </summary>
    public class aaa : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            string end = "{\"ok\":\"0\"}";
            string uname = context.Request["t"];

            using (DataClasses1DataContext con = new DataClasses1DataContext())
            {
                Users u = con.Users.Where(r => r.UserName == uname).FirstOrDefault();
                if (u != null)
                {
                    end = "{\"ok\":\"1\"}";

                }
            }
            context.Response.Write(end);
            context.Response.End();
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

验证

-- 各 方法未写

时间: 2024-10-24 16:02:33

MVC 【Razor 视图引擎】案例分析的相关文章

ASP.NET MVC Razor视图引擎攻略

--引子 看下面一段MVC 2.0的代码. <%if (Model != null){%> <p><%=Model%></p><%}%><%else{%> //Do something<%}%> 我们站在一个读者的立场上来看,”<% %>“这种标记C#代码的方法是十分蛋疼的. 如果写这段代码的人没有良好的缩进和对齐习惯的话,一段逻辑较为复杂的代码就会堆砌着杂乱无章的"<%“和"%>

MVC Razor视图引擎

Razor 不是编程语言.它是服务器端标记语言. Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法 当网页被写入浏览器时,基于服务器的代码能够创建动态内容.在网页加载时,服务器在向浏览器返回页面之前,会执行页面内的基于服务器代码.由于是在服务器上运行,这种代码能执行复杂的任务,比如访问数据库. Razor在减少代码冗余.增强代码可读性和VS智能感知方面,都有着突出的优势. Razor一经推出就深受所有ASP.Net开发者的喜爱. Razor 使

ASP.NET MVC Razor 视图引擎

. 使用 @ 字符将代码添加到页面中.正如传统的aspx视图的<% %>相同.    下面代码是介绍单语句块.内嵌代码块.多行语句块 1 <!-- 简单块 声明两个变量--> 2 @{int num = 10;} 3 @{string str = "hello cnblogs";} 4 <!-- 内联表达式 输入刚才声明的两个变量--> 5 <p>刚才声明的整形的值为: @num</p> 6 <p>刚才声明的字符型

Mvc Razor视图引擎基础

<1> @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <div> @ViewData["time"

MVC Razor视图引擎的入门

首先我们来说说他的给我们开发者带来那些好处吧: Razor语法易于输入,易于阅读,微软当时是这样定义的:简洁,富有表现力和灵活性,支持所有文本编辑器,强大的智能提示功能,单元测试. Rozor文件类型 RazorC#中是  .csHtml Razor的标识符 "@" @foreach(var album in Model.Albums) { <li>@album </li> }

Asp.Net MVC Razor视图引擎与My97DatePicker插件的结合

1 using System; 2 using System.Collections.Generic; 3 using System.Runtime.CompilerServices; 4 using System.Linq.Expressions; 5 6 namespace System.Web.Mvc 7 { 8 /// <summary> 9 /// Extended the HtmlHelper for Calendar 10 /// </summary> 11 publ

ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习

首页 头条 文章 频道                         设计频道 Web前端 Python开发 Java技术 Android应用 iOS应用 资源 小组 相亲 频道 首页 头条 文章 小组 相亲 资源 设计 前端 Python Java 安卓 iOS 登录 注册 首页 最新文章 经典回顾 开发 Web前端 Python Android iOS Java C/C++ PHP .NET Ruby Go 设计 UI设计 网页设计 交互设计 用户体验 设计教程 设计职场 极客 IT技术

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. Razor在减少代码冗余.增强代码可读性和Visual Studio智能感知方面,都有着突出的优势.Razor一经推出就深受广大ASP.Net开发者的喜爱. 1.2 Razor的语法 (1)Razor文件类型:Razor支持两种文件类型,分

Razor 视图引擎 &ndash; ASP.NET MVC 4 系列

       Razor 视图引擎是 ASP.NET MVC 3 开始扩展的内容,并且也是默认视图引擎.        Razor 通过理解标记的结构来实现代码和标记之间尽可能顺畅的转换.下面的例子演示了一个包含少量视图逻辑的简单 Razor 视图: @{ // this is a block of code. For demonstration purposes, // we'll create a "model" inline. var items = new string[] {

vs2015升级后台mvc视图编辑器默认不是razor视图引擎问题

1.问题的原因 vs2013中创建的mvc4.0应用默认使用的razor2.0版本 在vs2015编辑器中默认使用的razor视图引擎是3.0版本 解决方案: 第一步:升级mvc应用的版本为mvc5.2.3.0稳定版,razor视图引擎也跟着升级 第二部:修改webconfig的配置版本说明 根目录的webconfig,package.config会自动修改,但是Views文件夹下的需要手动修改.