ASP.NET MVC控制器概览(C#)
这篇教程探讨ASP.NET MVC控制器,控制器action和action result。完成此教程后,你会懂得控制器如何被用来控制访问者与ASP.NET MVC网站的交互方式。
理解控制器
MVC 控制器负责对ASP.NET MVC网站的请求作出回应。每一个浏览器请求都被映射到一个特定的控制器。例如,想象你在浏览器地址栏输入以下URL:
http://localhost/Product/Index/3
在这种情况下,名为ProductController的控制器被调用。 ProductController 负责生成对浏览器请求的作出响应。例如,控制器会返回一个特定视图到浏览器或者将用户重定向到另一个控制器。
代码1 包含了一个名为 ProductController 的简单控制器。
代码1– Controllers\ProductController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MvcApplication1.Controllers
{
public class ProductController : Controller
{
//
// GET: /Products/
public ActionResult Index()
{
// Add action logic here
return View();
}
}
}
就如你在代码1中看到的,控制器只是一个类(一个Visual Basic .NET或者C#类)。控制器继承基类 System.Web.Mvc.Controller 。 由于控制器继承此基类,所以它继承了几个有用的方法(等会儿我们来讨论这些方法)。
理解控制器 Actions
控制器暴露 actions. 一个 action 是一个控制器上的方法,在浏览器地址栏输入特定URL时就会被调用。例如,想象发送以下URL请求:
http://localhost/Product/Index/3
在这情况下,ProductController 类上的 Index() 方法被调用。 Index() 方法就是控制器action的一个例子。
控制器 action 必须是控制器类的公共方法。C#方法默认是私有方法。注意任何加到控制器类的公共方法都会自动被暴露成控制器action(你必须小心,因为任何人只要在浏览器地址栏输入正确URL都可以调用控制器action)。
满足控制器action还需要几个额外要求。用作控制器action的方法不能重载。还有,控制器action 不能是静态方法。其它的方法都可以作为控制器action。
理解 Action Result
控制器 action 返回某些被称为 action result 的东西。 action result 就是控制器action对浏览器请求作出的响应。
ASP.NET MVC 框架支持集中类
相关文档:
在Web编程过程中,存在着很多安全隐患。比如在以前的ASP版本中,Cookie为访问者和编程者都提供了方便,并没有提供加密的功能。打开IE浏览器,选择“工具”菜单里的“Internet选项”,然后在弹出的对话框里单击“设置”按钮,选择“查看文件”按钮,在弹出的窗口中,就会显示硬盘里 ......
ASP.NET默认扩展名为.aspx,可是我们看到许多网站的扩展名很特别,比如校内的do。个性之余还可以实现简单的伪静态(即把后缀改为html)不过相对URLRewriter来说,是有点简陋(只能改掉连接中的.aspx),不过不失为一种方法。下面我们就来实现他!
先来说一下ASP.NET 1.1中的方法:
......
现在ASP.NET虚拟主机一般都可以绑定多个域名,但是通过这几个域名打开的页面都一样。如何使绑的这几个域名分别打开不通的页面(即实现子网站的功能)呢? 其实很简单,只需4个步骤:
1)给虚拟主机绑定几个域名;例如:www.abc.com,services.abc.com,support.abc.com。
2 ......
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MSXML2;
using System.Text.RegularExpressions;
......
最近做一个网站,该网站需要添加4000多 产品信息,如果用人工方法去别的网站copy那至少要花费半月时间才能完成,所以我个办法使用c#作出来了一个网页数据采集软件
详细出处参考:http://www.jb51.net/article/21468.htm
//提取产品列表页中产品最终页的网页
private void button1_Click(object sender, EventArgs e)
......