ASP.NET MVC 视图概览 (C#)
此教程向你提供 ASP.NET MVC 视图简介, 视图数据, 和 HTML Helpers。教程最后,你应该会理解如何创建新视图,从控制器传递数据到视图,和使用 use HTML Helpers 在视图中生成内容。
理解视图
不像 ASP.NET 或者ASP, ASP.NET MVC 并不包括任何直接对应页面的东西。 在 ASP.NET MVC 应用程序中,硬盘上并不存在与你输入浏览器地址栏中的URL对应的页面。在ASP.NET MVC应用程序中与页面最接近的东西是称为视图的东西。
ASP.NET MVC 应用程序, 传入的浏览器请求被映射到控制器 actions。控制器 action 可能返回一个视图。然而,控制器可能执行其他类型的action,比如将你重定向到另一个控制器 action。
代码1 包含一个简单的名为 HomeController的控制器。 HomeController 暴露了2个控制器 actions 名为 Index() 和 Details()。
代码1 – HomeController.cs
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Details()
{
return RedirectToAction("Index");
}
}
}
你可以在浏览器地址栏中输入以下URL来调用第一个action, Index() action:
/Home/Index
你可以在浏览器地址栏输入这个来调用第二个action, Details() action:
/Home/Details
Index() action 返回一个视图。大多数你创建的action都是返回视图的。然而,一个action可以返回其他类型的 action result。例如, Details() action 返回一个 RedirectToActionResult ,它将传入的请求重定向到 Index() action。
Index() action 只有简单的一行代码:
View();
这行代码返回一个必须位于你的web服务器以下路径的视图:
\Views\Home\Index.aspx
该路径的视图由控制器名称和控制器action名称来推断。
如果你愿意,你可以显式指定视图名称。下面这行代码返回一个名为"Fred"的视图:
View(“Fred”);
当这行代码被执行时,视图从以下路径返回:
\Views\Home\Fred.aspx
如果你要为你的ASP.NET MVC程序创建单元测试那么显式指定视图名称是一个好主意。那样,你可以创建单元测试来验证预期的视图是否由一个控制器action返回。
向视图添加内容
视图是一个可以包含脚本的标准的
相关文档:
第一:
private void Button1_Click( object sender, System.EventArgs e )
{
Response.Redirect( Request.Url.ToString( ) );
}
第二:
private void Button2_Click( object sender, System.EventArgs e )
{ ......
The following is a simple checklist you can use when building web
applications. Much of this still applies to other technologies and can
easily be extended. I try not to get too specific on technology or
methodology, but it is definitely leaning toward ASP.NET.
If you
......
char[] constant = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', ......
<%# Bind("Subject") %> //绑定字段
<%# Container.DataItemIndex + 1%> //实现自动编号
<%# DataBinder.Eval(Container.DataItem, "[n]") %>
通常使用的方法
<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
<%# DataBinder.Eval(Container.DataItem, "ColumnName", null) % ......