MVC 小demo
- .field-validation-error {
- color: #f00;
- }
- .field-validation-valid {
- display: none;
- }
- .input-validation-error {
- border: 1px solid #f00;
- background-color: #fee;
- }
- .validation-summary-errors {
- font-weight: bold;
- color: #f00;
- }
- .validation-summary-valid {
- display: none;
- }
Style.css
- using System;
- using System.Collections.Generic;
- using System.ComponentModel.DataAnnotations;
- using System.Linq;
- using System.Web;
- namespace PartyInvites.Models
- {
- public class GuestResponse
- {
- [Required(ErrorMessage = "Please enter your name")]
- public string Name { get; set; }
- [Required(ErrorMessage="Please enter your email address")]
- [RegularExpression(".+\\@.+\\..+",ErrorMessage="Please enter a valid email address")]
- public string Email { get; set; }
- [Required(ErrorMessage="Please enter your phone number")]
- public string Phone { get; set; }
- [Required(ErrorMessage="Please specify whether you'll attend")]
- public bool? WillAttend { get; set; }
- }
- }
Model__GuestResponse.cs
在view文件夹中,Home控制器内存在3个主视图
- @{
- Layout = null;
- }
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content="width=device-width" />
- <link href="~/Content/bootstrap.css" rel="stylesheet" />
- <link href="~/Content/bootstrap-theme.css" rel="stylesheet" />
- <title>Index</title>
- <style>
- .btn a {
- color: white;
- text-decoration: none;
- }
- body {
- background-color: #f1f1f1;
- }
- </style>
- </head>
- <body>
- <div class="text-center">
- <h2>We're going to have an exciting party.<br />(To do: sell it better. Add pictures or something.)</h2>
- <h3>And you are invited</h3>
- <div class="btn btn-success">
- @Html.ActionLink("RSVP Now", "RsvpForm")
- </div>
- </div>
- </body>
- </html>
View→Home→Index.cshtml
- @model PartyInvites.Models.GuestResponse
- @{
- Layout = null;
- }
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content="width=device-width" />
- <link href="~/Content/bootstrap.css" rel="stylesheet" />
- <link href="~/Content/bootstrap-theme.min.css" rel="stylesheet" />
- <link href="~/Content/style.css" rel="stylesheet" />
- <title>RsvpForm</title>
- </head>
- <body>
- <div class="panel panel-success">
- <div class="panel-heading text-center"><h4>RSVP</h4></div>
- <div class="panel-body">
- @using (Html.BeginForm())
- {
- @Html.ValidationSummary()
- <div class="form-group">
- <label>Your name:</label> @Html.TextBoxFor(x => x.Name, new { @class = "form-control" })
- </div>
- <div class="form-group">
- <label>Your email:</label> @Html.TextBoxFor(x => x.Email, new { @class = "form-control" })
- </div>
- <div class="form-group">
- <label>Your phone:</label> @Html.TextBoxFor(x => x.Phone, new { @class = "form-control" })
- </div>
- <div class="form-group">
- <label>Will you attend?</label>
- @Html.DropDownListFor(x => x.WillAttend, new[]{
- new SelectListItem(){Text="Yes,I'll be there",Value=bool.TrueString},
- new SelectListItem(){Text="No,I can't come",Value=bool.FalseString}
- }, "Choose an option", new { @class = "form-control" })
- </div>
- <div class="text-center"><input class="btn btn-success" type="submit" name="name" value="Submit RSVP" /></div>
- }
- </div>
- </div>
- </body>
- </html>
View→Home→RsvpForm.cshtml
- @model PartyInvites.Models.GuestResponse
- @{
- Layout = null;
- }
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content="width=device-width" />
- <title>Thanks</title>
- </head>
- <body>
- <div>
- <h1>Thank you,@Model.Name!</h1>
- @if (@Model.WillAttend == true) {
- @:It's great that you're coming.The drinks are already in the fridge.
- }
- else {
- @:Sory to hear that you can't make it,but thanks for letting us know.
- }
- </div>
- </body>
- </html>
View→Home→Thanks.cshtml
controller
- using PartyInvites.Models;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- namespace PartyInvites.Controllers
- {
- public class HomeController : Controller
- {
- //
- // GET: /Home/
- //public ActionResult Index()
- //{
- // return View();
- //}
- public ViewResult Index() {
- int hour = DateTime.Now.Hour;
- ViewBag.Greeting = hour < ? "Good Morning" : "Good Afternoon";
- return View();
- }
- public ViewResult RsvpForm() {
- return View();
- }
- [HttpPost]
- public ViewResult RsvpForm(GuestResponse guestResponse)
- {
- if (ModelState.IsValid)
- {
- return View("Thanks", guestResponse);
- }
- else {
- return View();
- }
- }
- }
- }
HomeController.cs
MVC 小demo的更多相关文章
- 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo
简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...
- 新手 gulp+ seajs 小demo
首先,不说废话,它的介绍和作者就不在多说了,网上一百度一大堆: 我在这里只是来写写我这2天抽空对seajs的了解并爬过的坑,和实现的一个小demo(纯属为了实现,高手请绕道); 一.环境工具及安装 1 ...
- Nancy之基于Nancy.Hosting.Self的小Demo
继昨天的Nancy之基于Nancy.Hosting.Aspnet的小Demo后, 今天来做个基于Nancy.Hosting.Self的小Demo. 关于Self Hosting Nancy,官方文档的 ...
- Nancy之基于Nancy.Owin的小Demo
前面做了基于Nancy.Hosting.Aspnet和Nancy.Hosting.Self的小Demo 今天我们来做个基于Nancy.Owin的小Demo 开始之前我们来说说什么是Owin和Katan ...
- Nancy之基于Self Hosting的补充小Demo
前面把Hosting Nancy with ASP.NET.Self Hosting Nancy和Hosting Nancy with OWIN 以demo的形式简单描述了一下. 这篇是为Self H ...
- [Unity3D]做个小Demo学习Input.touches
[Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...
- Android -- 自定义View小Demo,动态画圆(一)
1,转载:(http://blog.csdn.NET/lmj623565791/article/details/24500107),现在如下图的效果: 由上面的效果图可以看到其实是一个在一个圆上换不同 ...
- Win10 FaceAPI小demo开发问题汇总
Win10 FaceAPI小demo开发问题汇总 最近使用微软牛津计划做一个小demo,使用FaceAPI做一个小应用,实现刷脸的功能.开发的过程中用到几个问题,具体如下: Stream 与IRand ...
- 模仿京东顶部搜索条效果制作的一个小demo
最近模仿京东顶部搜索条效果制作的一个小demo,特贴到这里,今后如果有用到可以参考一下,代码如下 #define kScreenWidth [UIScreen mainScreen].bounds.s ...
随机推荐
- Yii2 常用代码集合
Yii2.0 对数据库查询的一些简单的操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...
- 漏洞:阿里云盾phpMyAdmin <=4.8.1 后台checkPageValidity函数缺陷可导致GETSHELL
阿里云盾提示phpMyAdmin <=4.8.1会出现漏洞有被SHELL风险,具体漏洞提醒: 标题 phpMyAdmin <=4.8.1 后台checkPageValidity函数缺陷可导 ...
- loj 6031「雅礼集训 2017 Day1」字符串
loj 注意到每次询问串长度都是给定的,并且询问串长\(k*\)询问次数\(q<10^5\),所以这里面一个东西大的时候另一个东西就小,那么考虑对较小的下功夫 如果\(k\le \sqrt{n} ...
- 06 Django之模型层---多表操作
一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...
- ccs之经典布局(二)(两栏,三栏布局)
接上篇ccs之经典布局(一)(水平垂直居中) 四.两列布局 单列宽度固定,另一列宽度是自适应. 1.float+overflow:auto; 固定端用float进行浮动,自适应的用overflow:a ...
- v-bind:value="diy" 添加到 <input type="button" /> 中可以,添加到<button />中不可以,diy是data中的数据
v-bind:value="diy" 添加到 <input type="button" /> 中可以, 添加到<button />中不可 ...
- hadoop安装zookeeper-3.4.12
在安装hbase的时候,需要安装zookeeper,当然也可以用hbase自己管理的zookeeper,在这里我们独立安装zookeeper-3.4.12. 下载地址:https://mirrors. ...
- CDN和浏览器缓存
1,CDN 旨在解决的最重要的问题是什么,我们称之为网络延迟,通过网络获取资源总是比从本地获取慢,无论服务器是在同一个局域网中还是位于世界的另一个角落,都是如此.这里的速度差异是 IT 行业的一个核心 ...
- linux 网卡配置详情
1.配置文件/etc/hosts(本地主机ip地址映射,可以有多个别名)./etc/services(端口号与标准服务之间的对应关系)./etc/sysconfig/network(设置主机名,网关, ...
- windows删除已注册服务
背景:近日,想要学习mysql主从复制,于是想在本地用多个mysql实例进行试验,试验的过程中总是挫折不断,生手不易,安装了很多实例,测试完成之后,想要删除这些实例. 虽然任务管理器可以停止任务,但是 ...