asp.net 4.0+ webform程序中集成mvc4

本文为大家分享了asp.net 4.0+ webform程序中集成mvc4的方法,供大家参考,具体内容如下

1、新建packages.config文件,里面加上必要的程序集

<?xml version="1.0" encoding="utf-8"?>
<packages>
 <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="1.0.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.Mvc.zh-Hans" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.Razor" version="2.0.20715.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.Razor.zh-Hans" version="2.0.20715.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.Web.Optimization.zh-Hans" version="1.0.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.Core" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="4.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebPages.zh-Hans" version="2.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.Net.Http.zh-Hans" version="2.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
 <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net40" />
 <package id="WebGrease" version="1.1.0" targetFramework="net40" />
</packages>

2、在对应web项目中还原包

update-package -projectname 'web' -reinstall

3、新建App_Start目录,在里面加上mvc对应配置代码

BundleConfig.cs为静态文件压缩的配置代码,参考代码如下:

 public class BundleConfig
 {
  // 有关 Bundling 的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=254725
  public static void RegisterBundles(BundleCollection bundles)
  {
   bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-{version}.js"));
   bundles.Add(new ScriptBundle("~/bundles/common").Include("~/js/common*"));
   bundles.Add(new ScriptBundle("~/bundles/echarts").Include("~/js/echarts.common*"));
   bundles.Add(new ScriptBundle("~/bundles/mustache").Include("~/js/mustache*"));
   bundles.Add(new ScriptBundle("~/bundles/blockUI").Include("~/js/jquery.blockUI*"));

   bundles.Add(new StyleBundle("~/Content/oa/css").Include("~/css/oa/style.css"));

   //BundleTable.EnableOptimizations = true;
  }
 }

RouteConfig.cs为路由配置代码,web form相关资源要在此处忽略路由过滤

 public class RouteConfig
 {
  public static void RegisterRoutes(RouteCollection routes)
  {
   routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
   //routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
   //routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");

   routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
   routes.IgnoreRoute("{handler}.ashx/{*pathInfo}");
   routes.IgnoreRoute("Handlers/{handler}.aspx/{*pathInfo}");
   routes.IgnoreRoute("ajaxpro/prototype.ashx");
   routes.IgnoreRoute("ajaxpro/core.ashx");
   routes.IgnoreRoute("ajaxpro/converter.ashx");
   routes.IgnoreRoute("ajaxpro/{resource}.ashx");

   routes.IgnoreRoute("{resource}.asmx/{*pathInfo}");

   routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
   );
  }
 }

WebApiConfig.cs为WebApi的路由配置,参考代码:

public static class WebApiConfig
 {
  public static void Register(HttpConfiguration config)
  {
   config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
   );
  }
 }

4、Global文件中Application_Start事件中加上如下代码,使程序启动MVC配置生效

 AreaRegistration.RegisterAllAreas();
   GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("json", "true", "application/json"));
   WebApiConfig.Register(GlobalConfiguration.Configuration);
   FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
   RouteConfig.RegisterRoutes(RouteTable.Routes);
   BundleConfig.RegisterBundles(BundleTable.Bundles);
   GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

5、新建Controllers文件夹,在里面加上控制器类,例如

 public class DocRecController : Controller
 {
  public ActionResult Index()
  {
   ViewBag.UserName = "wilson.fu";return View();
  }
}

6、新建Views文件夹,里面加上对应视图文件,如果需要使用模板,还需增加_ViewStart.cshtml 文件,例如DocRec/Index.cshtml,文件如下

@{
 Layout = null;
}

<!DOCTYPE html>

<html>
<head>
 <meta name="viewport" content="width=device-width" />
 <title></title>
</head>
<body>
 <div>
 <h3>
  @ViewBag.UserName
 </h3>
 </div>
</body>
</html>

Views文件夹下还需要加上Web.config文件进行请求过滤

<?xml version="1.0" encoding="utf-8"?>

<configuration>
 <configSections>
 <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
 </sectionGroup>
 </configSections>

 <system.web.webPages.razor>
 <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
 <pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
  <add namespace="System.Web.Mvc" />
  <add namespace="System.Web.Mvc.Ajax" />
  <add namespace="System.Web.Mvc.Html" />
  <add namespace="System.Web.Routing" />
  </namespaces>
 </pages>
 </system.web.webPages.razor>

 <appSettings>
 <add key="webpages:Enabled" value="false" />
 </appSettings>

 <system.web>
 <httpHandlers>
  <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
 </httpHandlers>

 <!--
  在视图页面中启用请求验证将导致验证在
  控制器已对输入进行处理后发生。默认情况下,
  MVC 在控制器处理输入前执行请求验证。
  若要更改此行为,请对控制器或操作
  应用 ValidateInputAttribute。
 -->
 <pages
  validateRequest="false"
  pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
  pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
  userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
  <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
 </pages>
 </system.web>

 <system.webServer>
 <validation validateIntegratedModeConfiguration="false" />

 <handlers>
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
 </handlers>
 </system.webServer>
</configuration>

目录结构如下:

编译通过后,访问/docrec/index,即可看到效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2016-09-22

mvc form表单提交的几种形式整理总结

mvc中form表单提交的几种形式 第一种方式:submit 按钮 提交 <form action="MyDemand" method="post"> <span>关键字:</span> <input name="keywords" type="text" value="@keywords" /> <input type="submit&quo

使用jQuery.form.js/springmvc框架实现文件上传功能

使用的技术有jquery.form.js框架, 以及springmvc框架.主要实现异步文件上传的同时封装对象,以及一些注意事项. 功能本身是很简单的,但是涉及到一些传递参数类型的问题.例如:jquery的ajax方法与jquery.form.js中的ajaxSubmit方法的参数,具体细节将在下一篇博客中分享. 重点: html表格三要素: action="fileUpload/fileUpload" method="post" enctype="mul

适用于WebForm Mvc的Pager分页组件C#实现

本文为大家分享了自己写的一个Pager分页组件,WebForm,Mvc都适用,具体内容如下 分页控件其实就是根据链接在页面间传递参数,因为我看到MVC中你可以看到这样传递参数的new {para=val}这种方式传递参数,于是我想到用可以模仿这种传递参数的方式,那就用dynamic来作为参数对象传递. 下面是附上我写的具体的实现的代码 数据处理代码: 1.定义IPagedList接口 using System; using System.Collections.Generic; using Sy

jquery.form.js框架实现文件上传功能案例解析(springmvc)

上一篇 Bootstrap自定义文件上传下载样式(http://www.jb51.net/article/85156.htm)已经有一段时间了,一直在考虑怎么样给大家提交一篇完美的逻辑处理功能.现在我结合自己的实际工作给大家分享一下. 使用的技术有jquery.form.js框架, 以及springmvc框架.主要实现异步文件上传的同时封装对象,以及一些注意事项. 功能本身是很简单的,但是涉及到一些传递参数类型的问题.例如:jquery的ajax方法与jquery.form.js中的ajaxSu

详解ASP.NET MVC Form表单验证

一.前言 关于表单验证,已经有不少的文章,相信Web开发人员也都基本写过,最近在一个个人项目中刚好用到,在这里与大家分享一下.本来想从用户注册开始写起,但发现东西比较多,涉及到界面.前端验证.前端加密.后台解密.用户密码Hash.权限验证等等,文章写起来可能会很长,所以这里主要介绍的是登录验证和权限控制部分,有兴趣的朋友欢迎一起交流. 一般验证方式有Windows验证和表单验证,web项目用得更多的是表单验证.原理很简单,简单地说就是利用浏览器的cookie,将验证令牌存储在客户端浏览器上,co

mvc中form表单提交的三种方式(推荐)

第一种方式:submit 按钮 提交 <form action="MyDemand" method="post"> <span>关键字:</span> <input name="keywords" type="text" value="@keywords" /> <input type="submit" value="搜索&

SpringMVC处理Form表单实例

Spring MVC 表单处理例子下面的例子说明了如何编写一个简单的基于 web 的应用程序,它利用了使用 Spring 的 Web MVC 框架的 HTML 表单. 一 测试项目搭建 (1)新建Java Web项目,并引入几个SpringMVC项目所需要的jar包,项目结构和所需要的jar包如下: ①web.xml: <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3

ASP.NET MVC运行出现Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解决方法

Chrome提示: 确定相关JS已经包含在页面中,(用的是MasterPage,二个页面包含的js文件完全相同),排除了js引用路径不正确的问题. 页面上生成的mvcClientValidationMetadata也没问题,但客户端验证就是不起作用. 将MicrosoftAjax.js替换成MicrosoftAjax.debug.js.在Chrome调试工具中看到此异常在Sys.UI.DomElement.getElementById函数中抛出 在394行加个断点,刷新页面,一步步跟踪, 162

ASP.NET在MVC控制器中获取Form表单值的方法

本文实例讲述了ASP.NET在MVC控制器中获取Form表单值的方法.分享给大家供大家参考,具体如下: 在MVC控制器中,如果我们想直接获取表单中某个标签元素的值,可以使用MVC中提供的FormCollection类,具体用法如下所示: 视图部分: @using (Html.BeginForm()) { <text>您输入的值是:</text><span>@ViewBag.FormValue</span> <input type="text&

springMVC结合AjaxForm上传文件

最近在项目中需要上传文件文件,之前一直都是form提交的,尝试了一下AjaxForm,感觉还比较好用,写篇随笔mark下,供以后使用. 准备工作: 下载jquery-form.js 相关jar: commons-fileupload-1.1.1.jar commons-io-1.3.2.jar 在spring-servlet.xml进行multipartResolver配置: <bean id="multipartResolver" class="org.springf

PHP+AjaxForm异步带进度条上传文件实例代码

在使用ajaxForm方法之前,首先需要安装form.js的插件,网上有: 一.首先说用法,ajaxForm可以接收0或1个参数,该参数可以是一个变量.一个对象或回调函数,这个对象主要有以下参数: var object= { url:url, //form提交数据的地址 type:type, //form提交的方式(method:post/get) target:target, //服务器返回的响应数据显示的元素(Id)号 beforeSerialize:function(){} //序列化提交

springmvc利用jquery.form插件异步上传文件示例

需要的下载文件: jQuery.form.js jquery.js commons-fileupload.jar commons-io.jar 示例图片 pom.xml <!-- 文件上传 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3</ve

SpringMVC上传文件的简单实例

SpringMVC上传文件的简单实例 在使用springMVC进行系统实现时,springMVC默认的解析器里面是没有加入对文件上传的解析的,这可以方便我们实现自己的文件上传.但如果你想使用springMVC对文件上传的解析器来处理文件上传的时候就需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明.这样之后,客户端每次进行请求的时候,springMVC都会检查request里面是否包含多媒体信息,如果包含了就会使用Mu

SpringMVC + jquery.uploadify实现上传文件功能

前言 以前用Asp.net MVC+uploadify上传文件,最近学习SpringMVC,所以就用SpringMVC+uploadify做个上传文件的demo. 刚开始用form表单的方式提交,在Controller Action中用@RequestParam MultipartFile file就能拿到上传文件信息.后我直接使用uploadify的方式上传,接口没有做任何调整,上传的过程中报http400, 客户端的请求不符合接口的要求,表单post提交时报文参数是以Form Data方式,

SpringMVC上传文件的三种实现方式

SpringMVC上传文件的三种实现方式,直接上代码吧,大伙一看便知 前台: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.

SpringMVC上传文件的两种方法

在该示例中,阐述了SpringMVC如何上传文件. 1.上传页面upload.jsp <body> <form action="/TestSpringMVC3/data/uploadfile" enctype="multipart/form-data" method="post"> file:<input type="file" name="file"><br>

SpringMVC上传文件FileUpload使用方法详解

本文实例为大家分享了SpringMVC上传文件FileUpload的具体代码,供大家参考,具体内容如下 我是在已经搭建好的springMVC环境下,maven工程中的pom.xml所需要的jar包(其中spring上传文件的两个主要jar:commons-fileupload.jar和commons-io.jar): <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o

SpringMVC上传文件并保存到本地代码实例

这篇文章主要介绍了SpringMVC上传文件并保存到本地代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本的MVC配置就不展示了,这里给出核心代码 在spring-mvc的配置文件中写入如下配置 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"

SpringMVC 上传文件 MultipartFile 转为 File的方法

在使用 SpringMVC 上传文件时,接收到的文件格式为 MultipartFile,但是在很多场景下使用都需要File格式的文件,记录下以便日后使用. 以下mFile为MultipartFile文件 此方法会在本地产生临时文件,使用完毕需要删除 在网上搜索未发现可直接使用的不产生临时文件的方法,查到几个本地测试皆无法通过,如哪位有不产生临时文件的方法,请多多指教