ASP.NET MVC 4框架:ASP.NET MVC上的Web应用

ASP.NET MVC 4框架:ASP.NET MVC上的Web应用,第1张

  建立在 迷你版 ASP NET MVC上的Web应用

在正式介绍我们自己创建的 迷你版 ASP NET MVC的实现原理之前 不妨来看看建立在该框架之上的Web应用如何定义 通过Visual Studio创建一个空的ASP NET  Web应用(注意不是ASP NET MVC应用)并不会引用System Web Mvc dll这个程序集 所以在接下来的程序中看到的所谓MVC的组件都是我们自行定义的

首先定义了如下一个SimpleModel类型 它表示最终需要绑定到View上的数据 为了验证针对Controller和Action的解析机制 SimpleModel定义的两个属性分别表示当前请求的目标Controller和Action

public class SimpleModel

{

public string Controller { getset}

public string Action { getset}

}

与真正的ASP NET MVC应用开发一样 我们需要定义Controller类 按照约定的命名方式(以字符 Controller 作为后缀) 我们定义了如下一个HomeController HomeController实现的抽象类型ControllerBase是我们自行定义的 以自定义的ActionResult作为返回类型的Index方法表示Controller的Action 它接受一个SimpleModel类型的对象作为参数 该Action方法返回的ActionResult是一个RawContextResult对象 顾名思义 RawContextResult就是将指定的内容进行原样返回 在这里我们将作为参数的SimpleModel对象的Controller和Action属性显示出来

public class HomeController: ControllerBase

{

public ActionResult Index(SimpleModel model)

{

string content = string Format( Controller: { }<br/>Action:{ }

model Controller model Action)

return new RawContentResult(content)

}

}

ASP NET MVC根据请求地址来解析出用于处理该请求的Controller的类型和Action方法名称 具体来说 我们预注册一些包含Controller和Action名称作为占位符的(相对)地址模板 如果请求地址符合相应地址模板的模式 Controller和Action名称就可以正确地解析出来 和ASP NET MVC应用类似 我们在Global asax中注册了如下一个地址模板({controller}/{action}) 我们还注册了一个用于创建Controller对象的工厂 RouteTable ControllerBuilder和DefaultControllerFactory都是我们自定义的类型

public class Global : System Web HttpApplication

{

protected void Application_Start(object sender EventArgs e)

{

RouteTable Routes Add( default

new Route{Url = {controller}/{action} })

ControllerBuilder Current SetControllerFactory(

new DefaultControllerFactory())

}

}

正如上面所说的 ASP NET MVC是通过一个自定义的HttpModule实现的 在这个 迷你版 ASP NET MVC框架中我们也将其起名为UrlRoutingModule 在运行Web应用之前 我们需要通过配置对该自定义HttpModule进行注册 下面是相关的配置

<configuration>

<system webServer>

<modules>

<add name= UrlRoutingModule

type= WebApp UrlRoutingModule WebApp />

</modules>

</system webServer>

</configuration>

到目前为止 所有的编程和配置工作已经完成 为了让定义在HomeController中的Action方法Index来处理针对该Web应用的访问请求 我们需要指定与之匹配的地址(符合定义在注册地址模板的URL模式) 如图 所示 由于在浏览器中输入地址(//…/Home/Index)正好对应着HomeController的Action方法Index 所以对应的方法会被执行 而执行的结果就是将当前请求的目标Controller和Action的名称显示出来 (S )

图   采用符合注册的路由地址模板的地址访问Web应用

上面演示了如何在我们自己创建的 迷你版 ASP NET MVC框架中创建一个Web应用 从中可以看到和创建一个真正的ASP NET MVC应用别无二致 接下来我们就来逐步地分析这个自定义的ASP NET MVC框架是如何建立起来的 而它也代表了真正的ASP NET MVC框架的工作原理

       返回目录 ASP NET MVC 框架揭秘

       编辑推荐

       ASP NET开发培训视频教程

       Microsoft NET框架程序设计视频教程

       Java程序性能优化 让你的Java程序更快 更稳定

       Visual C++音频/视频技术开发与实战

lishixinzhi/Article/program/net/201311/16113

解决办法以及步骤:

1、第一步,生产服务器的是阿里云,WINDOWS2008,需要安装MVC4,装了.NET4.5.。

2、第二步,在项目中引用 System.Web.Helpers,并将属性设为“复制本地”。

3、发布之后,System.Web.Helpers.dll,拷贝到生产服务器对应的BIN目录,问题就得到解决了。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12001414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存