.Net MVC之间的关系以及如何运用
.Net MVC组成部分:视图(views)模型(model)控制器(controller)以及路由(RouteConfig),视图跟模型的数据不进行直接的交互,他们是通过控制器进行视图模型之间的数据交互,现在我们来一步步讲讲视图如何跟模型之间交互。
视图:用来显示客户端界面
模型:用来数据之间的交互
控制器:用来将视图跟模型关联起来
路由:用来配置URL
推荐几篇入门的文章,MVC HtmlHelper用法大全
路由器设置默认加载页面:
路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "控制器名称", action = "控制器动作", id = UrlParameter.Optional }
);
}
如何将视图模型控制器关联起来
方法一:
创建视图时,选择对应的模型,去创建。
视图:
@Html.TextBoxFor(model => model.tel, new { @class = "user_input", tabindex = "1" })
在视图中创建,在模型中创建一个字段
模型:
public string tel { get; set; }
在控制器中实例化模型,然后调用模型里面的字段名称,将字段名称赋值,返回字段名,就会产生字段的内容。比如说:
public ActionResult Login(Field field, string textyzm)
{
string tel = field.tel;
return View();
}
方法二:
视图:
@Html.TextBox("texxname", "", new { })
在对应的动作中传递参数,注:参数名要与跟视图创建的名称相同。
控制器:
public ActionResult Index(string textname,)
{
string ss=textname
return Content(ss);
}
提交表单操作
定义一个post请求提交,在控制器里面定义相应的动作,实现表单提交功能。
MVC视图:
<form id="user_form_0" class="user_form" method="post" target="pass_reg_iframe_0" action="#">
<p>
<label id="label_username" for="username">用户名</label>
@Html.TextBoxFor(model => model.name, new { @class = "user_input", tabindex = "1" })
</p>
<p>
<label id="label_password_0" for="password_0">密码</label>
@Html.PasswordFor(model => model.pass, new { @class = "user_input", tabindex = "2" })
</p>
<p>
<label id="label_sex" for="sex">性别</label>
@Html.DropDownListFor(model => model.sex, new SelectList(ViewBag.hard_value, "value", "text"), new { })
</p>
<p>
<label id="label_password_1" for="password_1">确认密码</label>
@Html.PasswordFor(model => model.qrpass, new { @class = "user_input", tabindex = "3" })
</p>
<p>
<label id="label_phone" for="phone">电话</label>
@Html.TextBoxFor(model => model.tel, new { @class = "user_input", tabindex = "4" })
</p>
<p>
<label id="label_mail" for="mail">邮箱</label>
@Html.TextBoxFor(model => model.email, new { @class = "user_input", tabindex = "4" })
</p>
<p class="user_p_verifycode">
<label id="label_verifycode" for="verifycode">验证码</label>
<img id="yzm" name="yzm" onclick="CodeChange()" title="看不清?"
src="/Login/GetValidatorGraphics" tabindex="5" />
</p>
<p class="user_p_img_verifycode">@Html.TextBox("textyzm", "", new
{ @class = "user_verifycode", id = "pass_reg_img_verifycode_0", alt =
"验证码图片", title = "验证码图片" })</p>
<div class="clear"></div>
<p>
<input name="提交" class="user_submit" type="submit" id="user_submit"
style="margin-left:152px;" tabindex="6" value="注册">
</p>
</form>
MVC控制器:
[HttpPost]
public ActionResult Index(Field fiel, string textyzm)
{
//写验证判断验证成功后跳转至index页面
//字段验证
bool tpyz = boolyzmyz(textyzm);
if (tpyz == true)
{
return View("Index");
}
else
{
return View();
}
}
MVC跳转
在视图这种跳转:
<a href="/控制器/控制器动作"></a>
在控制器里面跳转:
return View("控制器动作");
纯手打,转载请标注原文出处。
.Net MVC之间的关系以及如何运用的更多相关文章
- 【整理】JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系
#[整理]JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系 之间的关系
郭晨 软件151 1531610114 [整理]JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系 visio文件下载 概述 一个JavaEE的项 ...
- Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
转载请包含网址:http://blog.csdn.net/pathuang68/article/details/7351317 一.Surface Surface就是“表面”的意思.在SDK的文档中, ...
- Android 展示控件之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
一.Surface Surface在SDK的文档中的描述是这样的:Handle onto a raw buffer that is being managed by the screen compos ...
- 转:spring data jpa、 hibernate、 jpa 三者之间的关系
原文链接:spring data jpa. hibernate. jpa 三者之间的关系 spring data jpa hibernate jpa 三者之间的关系 JPA规范与ORM框架之间的关系是 ...
- java设计模式、框架、架构、平台之间的关系
设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用.框架是模块级复用.架构是系统级复用.平台是企业应用级复用. 1.设计模式 为什么要先说设计模式?因为设计模式在 ...
- ASP.NET-MVC中Entity和Model之间的关系
Entity 与 Model之间的关系图 ViewModel类是MVC中与浏览器交互的,Entity是后台与数据库交互的,这两者可以在MVC中的model类中转换 MVC基础框架 来自为知笔记(Wiz ...
- .NET Core与.NET Framework、Mono之间的关系
随着微软的.NET开源的推进,现在在.NET的实现上有了三个.NET Framework,Mono和.NET Core.经常被问起Mono的稳定性怎么样,后续Mono的前景如何,要回答这个问题就需要搞 ...
- .NET Core 和 .NET Framework 之间的关系
引用一段描述:Understanding the relationship between .NET Core and the .NET Framework. .NET Core and the .N ...
随机推荐
- POJ 2240_Arbitrage
题意: 给定一系列货币汇率,求能否从一种货币,经过一系列转换,最终转化回更高价值的该种货币. 分析: 即为求最长路并判断是否存在"正"权值回路,这里用的bellmanford算法. ...
- firemonkey获取当前文件所在路径的方法
在之前,我们知道有三种方法: ExtractFilePath(ParamStr(0)) ExtractFilePath(Application.ExeName) GetCurrentDir + '\' ...
- CentOS command
管理centos服务器的时候常会对文件进行一些常规操作,除了ftp之外了解在ssh下必要的文件操作命令那也是必不可少的,以下摘录一些常用的文件操作命令: 文件操作: ls ####查看目录中的文件## ...
- python实现同服站点地址获取
说明:程序使用http://s.tool.chinaz.com/same此站点查询的结果.使用python简单的实现抓取结果 先随便查询一个结果,抓包分析,如图: 使用python模仿post表单,使 ...
- iOS开发项目实战——Swift实现图片轮播与浏览
近期開始开发一个新的iOS应用,自己决定使用Swift.进行了几天之后,发现了一个非常严峻的问题.那就是无论是书籍,还是网络资源,关于Swift的实在是太少了,随便一搜全都是OC实现某某某功能.就算是 ...
- Chromium硬件加速渲染的UI合成过程分析
在Chromium中.Render端和WebGL端绘制出来的UI终于是通过Browser端显示在屏幕上的.换句话说.就是Browser端负责合成Render端和WebGL端的UI.这涉及到不同Open ...
- 【bzoj3288】Mato矩阵
题目大意:给定一个n阶行列式,第i行第j列为GCD(i,j),求这个行列式的值 高斯消元之后发现对角线上的东西是phi 于是线性筛出所有的欧拉函数即可 #include<algorithm> ...
- 【HNOI模拟By lyp】Day2
1 toad1.1 题目描述 有 n 个石子, A B 两人博弈, A 先手. A 首先取若干个石子(至少一个,不能取完),然后B和A 再轮流取石子,每次取的石子不能超过 axb ( x 表示上次取的 ...
- 实现一个简易的express中间件
代码: // 通过闭包实现单例 const Middlewave = (function(){ let instance; class Middlewave{ constructor() { this ...
- Ajax 之 DWR
DWR是开源框架,类似于hibernate.借助于DWR,开发人员无需具备专业的JavaScript知识就可以轻松实现Ajax,是Ajax更平民化. 添加jar包 dwr.jar common ...