您的位置:首页 > 编程语言 > ASP

Asp.Net MVC 3【Controllers And Actions】

2012-09-06 17:12 411 查看
这里分享一下MVC框架里的Controller("控制器")和Action("动作/方法"),我将告诉你如何实现控制器和不同的方式,你可以使用控制器接收和生成输出。 MVC框架不限制您通过视图生成HTML,我们将讨论其他可用的选项。我们还将展示如何操作方法使易于单元测试,并演示如何测试每一种结果,只需要一个动作("Action")方法即可。

介绍控制器("Controller")

关于Controller("控制器")的代码,估计大家也看到不少了,今天我们深入的看看这个控制器的内幕吧!

首项我们准备一个项目("MvcControllers"),接下来我们创建一个 IController接口,并且让所有的Controller("控制器")都实现该接口。项目整体结构如下图1.

View Code

public FileResult AnnualReport()
{
string filename = @"D:\huitai.pdf";
string contentType = "application/pdf";
string downloadName = "AnnualReport2012.pdf";

return this.File(filename, contentType, downloadName);
}


这个动作方法使浏览器会提示用户保存文件,这里做个简单的介绍!

发送一个字节数组

如果您已经在内存中的二进制数据,你可以将它传送到浏览器中使用不同的过载文件的方法,下面用代码做个简单的描述(发送二进制数组):

public FileContentResult DownloadReport()
{
byte[] data = ... //生成或获取文件内容以某种方式
return this.File(data,"appliction/pdf","AnnualReport.pdf");
}


从检索到的图像数据发送数据库。再次,你必须指定的contentType,并可以选择指定fileDownloadName。浏览器会把它们在完全相同的方式,当你发送一个磁盘文件。

返回错误和HTTP代码

可以使用内置的ActionResult类,我们将期待在最后的发送特定的错误到客户端的消息和HTTP结果代码。大多数应用程序并不需要这些功能,因为MVC框架会自动生成这些结果自动。然而,他们可以是有用的,如果你需要采取更直接地控制发送给客户端的响应。

发送一个特定的HTTP结果代码

您可以发送一个特定的HTTP状态代码的浏览器使用HttpStatusCodeResult类。有没有控制器的辅助方法,所以你必须实例化类。

发送404结果

这里直接用简单的代码说明怎么生成一个404的结果,如下:

public HttpStatusCodeResult StatusCode()
{
return this.HttpNotFound();
}


有没有在控制器类中的辅助方法来创建实例的HttpUnauthorizedResult,所以你必须这样做的直接。返回这个类的一个实例的效果通常是将用户重定向到在验证页面。

OK!好久都没来更新博客,这边文章写的也比较仓促,肯定有描述错误的地方,还请路过的前辈和新学习的同学们多多指教和,对于之前提出问题的童鞋,我会抽时间解答大家!总之大家共同进步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: