一.需要转换为JSON格式
在目录[App_Start]-[WebApiConfig.cs]文件中增加代码:
#region 设置默认返回JSON格式
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
//默认返回 json
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
new QueryStringMapping("datatype", "json", "application/json"));
//返回格式选择 datatype 可以替换为任何参数
GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(
new QueryStringMapping("datatype", "xml", "application/xml"));
#endregion
示例图:
二.需要屏蔽默认主页和帮助页
重写http过滤器/拦截器,拦截每一个发来的请求,应用到help页面的class上。
指定条件编译内容,从此即可保持代码一致。
1.写个拦截器,放在任意地方
using System.Web.Mvc;
namespace webApi.Util
{
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
//如果是在!testV条件下,则将一切请求(指的是应用了CustomAuthorize的控制器class或method)直接重定向到404页面;反之,执行默认行为
#if !testV
filterContext.Result = new RedirectResult("~/404.html");
#endif
}
}
}
2.分别将此拦截器应用到HomeController.cs上和HelpControlle.cs上。
using System.Web.Mvc;
using webApi.Util;
namespace webApi.Controllers
{
/// <summary>
///
/// </summary>
public class HomeController : Controller
{
/// <summary>
///
/// </summary>
/// <returns></returns>
[CustomAuthorize]
public ActionResult Index()
{
return View();
}
}
}
using System;
using System.Web.Http;
using System.Web.Mvc;
using webApi.Areas.HelpPage.Models;
using webApi.Util;
namespace webApi.Areas.HelpPage.Controllers
{
/// <summary>
/// The controller that will handle requests for the help page.
/// </summary>
[CustomAuthorize]
public class HelpController : Controller
{
//略
}
}
3.如果help页面不需要了,则bundile.cs里的很多文件处理也不需要了的,也应该处理一下。
BundleConfig.cs
using System.Web;
using System.Web.Optimization;
namespace webApi
{
public class BundleConfig
{
// 有关 Bundling 的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
//如果是在testV条件下,则执行这些bundles行为;如果不是testV,则相当于这部分代码就不存在
#if testV
bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/OriginalJs/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include("~/Scripts/OriginalJs/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include("~/Scripts/OriginalJs/jquery.unobtrusive*", "~/Scripts/OriginalJs/jquery.validate*"));
// 略
#endif
}
}
}
4.执行条件编译即可。
如下图,显然地,testV适用于测试环境,没有testV适用于生产环境。
参考链接:
https://blog.csdn.net/festone000/article/details/71535181