View-Control-Model基础,强类型视图,添加验证 Sample

Views\Home\Index.cshtml

@*通过Binder机制把表单Post的数据赋给参数对象对应的属性*@
@model MvcHelloWorld.Models.Person

@{
    ViewBag.Title = "Index";
}

<div>
<h1>Please Input Your Information</h1>
@using (Html.BeginForm("SendInformation","Home"))
{
    <p>@Html.ValidationSummary()</p>
    <p>Your Name:@Html.TextBoxFor(x=>x.Name)</p>
    <p>Your Email:@Html.TextBoxFor(x=>x.Email)</p>
    <p>Your Phone:@Html.TextBoxFor(x=>x.Phone)</p>
    <p>Gender:
        @Html.DropDownListFor(x=>x.Gender,
            new[]{
            new SelectListItem(){Text="I am boy",Selected=true,Value="Male"},
            new SelectListItem(){Text="I am girl",Selected=false,Value="Female"},
            },"Please select your gender")</p>
    <p><input type="submit" value="Submit Your Information"/></p>
}
</div>

Views\Home\Welcome.cshtml

@{
    //显示当前页面的标题的
    ViewBag.Title = "Welcome";
}

<h2>@ViewBag.name Welcome</h2>

Models\HomeModels.cs

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

//验证必须应用该命名空间,在页面里添加@Html.ValidationSummary(),在Action里添加
//if(ModelState.IsValid)
//{
//    return Content("Thank You," + person.Name + "," + person.Email + "," + person.Phone + "," + person.Gender);
//}
//else
//{
//    return View("Index");
//}
using System.ComponentModel.DataAnnotations;

namespace MvcHelloWorld.Models
{
    public class Person
    {
        [Required(ErrorMessage="Please enter your name")]
        public string Name { get; set; }

[Required(ErrorMessage="Please enter your email address")]
        public string Email { get; set; }

[Required(ErrorMessage=("Please enter your phone number"))]
        public string Phone { get; set; }

[Required(ErrorMessage="Please select your gender")]
        public string Gender { get; set; }

}
}

Controllers\HomeController.cs

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

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

public ActionResult Index()
        {
            return View();
        }

////系统默认请求被路由到HomeController和Index这个Action
        //public string Index()
        //{
        //    //直接写字符串到客户端,可以不用添加 Index.cshtml 页面
        //    return "<h2>Index action returns string ‘Hello world‘ directly</h2>";
        //}

//返回非字符串, 需要添加 Welcome.cshtml
        public ActionResult Welcome()
        {
            //ViewBag是Controller定义的一个动态类型的属性,意味着你可以给他添加任何属性,在编译时动态类型的属性是不检查的
            //页面可通过 @ViewBag.XX 直接调用值
            ViewBag.name = "Welcome action returns View to show ViewBag name";
            return View();
        }

public ActionResult SendInformation(Person person)
        {
            if(ModelState.IsValid)
            {
                return Content("Thank You," + person.Name + "," + person.Email + "," + person.Phone + "," + person.Gender);
            }
            else
            {
                return View("Index");
            }
        }

}
}

时间: 2024-11-05 14:49:00

View-Control-Model基础,强类型视图,添加验证 Sample的相关文章

Asp.net mvc + .net ef database first 或 model first 时如何添加验证特性

今天有个同事问到,在使用Entity Framework 的Database frist或model first时,怎么在model上添加验证的特性? 因为此时的Model是是VS 工具怎么生成的,直接加attribute到modle类上是太现实也不合理.一个比较合理做法,就是用 buddy class的方式来实现. 比如有一个Model类: Movie.那我们就可以添加一个局部类文件,局部类的内容如下: using System.ComponentModel.DataAnnotations;

0805THINKPHP基础:视图、验证器

视图================================================================== 一.加载页面 1.继承系统控制器 $this->fetch();可加入页面名称 2.使用助手函数 view();可加入页面名称 3.使用View类 $view = new View; $view->fetch();可加入页面名称 二.模板赋值 1.assign方法 原文地址:https://www.cnblogs.com/zhangbaozhong/p/94

[Swift通天遁地]六、智能布局-(5)给视图添加Align(对齐)和Fill(填充的约束以及Label的约束

本文将演示如何给视图添加Align(对齐)和Fill(填充的约束以及Label的约束. 锚点默认位于视图中心点的位置. 首先确保在项目中已经安装了所需的第三方库. 点击[Podfile],查看安装配置文件. 1 platform :ios, ‘12.0’ 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'Neon' 7 end 根据配置文件中的相关配

MVC强类型视图与model关键字

在开发mvc项目过程中,如果需要在view视图中进行(model字段绑定,自动提示)模型绑定 :在不清楚字段,或者字段较多的情况下,是非常有必要的! 下面咱们具体实现一下 1.首先创建Sent控制器 2.然后再Models文件夹中创建一个实体类modelTex using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebApplication1.Models {

Scene View Control Bar场景视图控制条

场景视图控制栏 场景视图控制栏允许您选择用于查看场景的各种选项,还可以控制是否启用照明和音频.这些控件仅在开发过程中影响场景视图,对构建的游戏没有影响. Scene View Control Bar 场景视图控制栏 第一个下拉框是选择绘图模式:你可以选择去查看整个场景纹理,线框架,或纹理与线框架覆盖.在游戏发布时,它不对你的游戏有影响. :场景中灯光打开与关闭 :切换天空球.雾效.光晕的显示与隐藏 :切换声音的开关 :单击三角符号可以显示或隐藏场景中用到的光源.声音.摄像机等对象的图标 :查找物

[Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net MVC]Asp.net MVC5系列——添加模型 [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据 [Asp.net MVC]Asp.net MVC5系列——添加数据 概述 上篇文章中介绍了添加数据,在提交表单的数据的时候,我们需

MVC强类型视图、强类型HTML辅助方法

强类型视图: <table> <tr> <td>ID:</td><td><%: Model.Id %></td> </tr> <tr> <td>姓名:</td><td><%: Model.UserName %></td> </tr> <tr> <td>年龄:</td><td><

ASP.NET MVC4 新手入门教程之八 ---8.向模式中添加验证

在这本部分会将验证逻辑添加到Movie模式,和你会确保验证规则执行任何时候用户试图创建或编辑使用该应用程序的一部电影. 保持事物的干练性 ASP.NET MVC 的核心设计信条之一是 DRY(”Don't Repeat Yourself“,不要重复).ASP.NET MVC 鼓励你只有一次,指定的功能或行为,然后让它无处不在应用程序中反映.这减少了需要编写的代码量,并使你写更少错误倾向和易于维护的代码. ASP.NET MVC 和 Entity Framework Code First 中提供的

强类型视图中传入List 数据到控制器

问题来源: 在和一位技术老师聊天时,老师问我一个mvc 表单提交的问题,问道:怎样在表单提交的时候,将 带有 List 属性的对象传入控制器? 这时,我有点呆了,以前一直都好像是 单一属性的表单提交,没有做过 带有list属性 的表单提交.最后饶了一圈,还是老老实实回答老师,不知道,没有处理过. 既然问题出来了,并且还不会,这肯定是不可以的,回去后,开始模拟场景,测试解决问题: 1. 首先准备两个实体类 public class Article { public string Title { g